| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Найти координаты вершин прямоугольного треугольника

Найти координаты вершин прямоугольного треугольника

Ответ
Поиск в этой теме
Непрочитано 25.03.2020, 22:38 #1
Найти координаты вершин прямоугольного треугольника
Ilya405
 
Регистрация: 23.04.2016
Сообщений: 4

Помогите определить координаты точки D в прямоугольном треугольнике. Всё перерыл, ничего не помогает:wall:

Миниатюры
Нажмите на изображение для увеличения
Название: Help.jpg
Просмотров: 199
Размер:	67.7 Кб
ID:	224414  

Просмотров: 3750
 
Непрочитано 25.03.2020, 23:04
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Во-первых, на каком языке пишешь?
Во-вторых, геометрия на уровне 7-9 класса уже выкинута?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 26.03.2020, 00:26
#3
eilukha


 
Регистрация: 10.09.2007
Сообщений: 10,592


  1. Открываем аналитическую геометрию в любом справочнике по математике.
  2. ВD есть расстояние от прямой АВ (заданной точками А и В) до точки С.
  3. После определения величины ВD, находим координаты D (по координатам точки D).

Последний раз редактировалось eilukha, 26.03.2020 в 16:56.
eilukha вне форума  
 
Непрочитано 26.03.2020, 07:31
#4
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


над...у этой задачки на вскидку как минимум 5 решений, 2 чисто автокадовские (пересечение линий и ближайшая к заданной точка на прямой ), еще 3 из курса школьной математики (геометрия, уравнение прямой на плоскости и вектора)
Автокадовские решения - просто, но затратно по ресурсам, остальное - нужно немного вспомнить школьную математику, но зато быстро и ничего лишнего.

Так, повторяя Алексея, на каком языке пишем и под какую платформу? от этого будет зависеть, что лучше использовать.

ЗЫ.
Что то переклинело, забыл про тригонометрию, сложно не найти длины сторон прямоугольного треугольника, зная гипотенузу и все углы

Последний раз редактировалось Boxa, 26.03.2020 в 09:58.
Boxa на форуме  
 
Автор темы   Непрочитано 26.03.2020, 10:47
#5
Ilya405


 
Регистрация: 23.04.2016
Сообщений: 4


Пишу на vb.net для autocad через com api. Углы не знаю. Именно только координаты и через них пытаюсь выразить один из катетов.
Ilya405 вне форума  
 
Непрочитано 26.03.2020, 20:15
#6
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Нда.. писать на vb.net под автокад, да еще и под COM... мусье знает толк в извращениях..

Можно же сходить как минимум на википедию и посмотреть статью про Прямую
Вот, надерганные от туда цитаты:

если это все применить для прямых АВ и ВС, то получите угол АВС и понятно, что отнять от полученного угла 90 градусов не велика задача и соответственно все углы в треугольнике у Вас есть.
Математика уровня начала средней школы... =(
Boxa на форуме  
 
Автор темы   Непрочитано 26.03.2020, 21:43
#7
Ilya405


 
Регистрация: 23.04.2016
Сообщений: 4


Спасибо!
Ilya405 вне форума  
 
Непрочитано 27.03.2020, 09:36
#8
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Цитата:
Сообщение от Ilya405 Посмотреть сообщение
Спасибо!
Мне то за что спасибо? Не смотря, на все мои намеки, вы пошли по самому нудному и длинному пути.
ИМХО, самое простое решение у этой задачи, это с использованием .NET API и векторов:
Код:
[Выделить все]
      Gem.Point3d pA = new Gem.Point3d(5636, 2295, 0);
      Gem.Point3d pB = new Gem.Point3d(5792, 2451, 0);
      Gem.Point3d pC = new Gem.Point3d(6092, 2341, 0);

      Gem.Point3d pD = pB + pB.GetVectorTo(pC).OrthoProjectTo(pA.GetVectorTo(pB));
Ну или по сути то же самое, только чуть многословнее и с использованием штатной System.Numerics
Код:
[Выделить все]
 
          //Начальные точки
      Vector2 pA = new Vector2(5636, 2295);
      Vector2 pB = new Vector2(5792, 2451);
      Vector2 pC = new Vector2(6092, 2341);
      //Вектора
      Vector2 BC = (pB - pC);
      Vector2 AB = (pA - pB);
      //Проекция вектора BC на вектор AB
      var pr = Vector2.Dot(BC, AB) / AB.Length();
      //Координаты точки D
      Vector2 pD = pC + Vector2.Normalize(AB) * pr;

Последний раз редактировалось Boxa, 27.03.2020 в 09:56.
Boxa на форуме  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Найти координаты вершин прямоугольного треугольника

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите вытащить из полилинии все координаты вершин Zaghim Программирование 20 29.08.2021 17:43
Как увеличить точность отображения координат вершин полилинии ? swkx Программирование 8 25.04.2013 15:27
Задание области печати. Помогите найти координаты окна. Puroshev Программирование 2 03.02.2012 10:06
Как получить координаты вершин линии в полярной системе координат? krusty AutoCAD 6 05.07.2011 10:16
В какой ПСК извлекаются координаты вершин отрезков, входящих в блок swkx Программирование 2 30.04.2011 23:24