Как найти точки координат прямоугольного треугольника

Задача 4.1. Определить прямоугольные координаты вершин треугольника.

Для решения задачи каждому студенту необходимо иметь ксерокопию карты, на которой преподавателем построен треугольник с вершинами АВС. Прежде чем приступить к решению задачи необходимо определить масштаб карты (длина стороны квадрата равна 1 км). Необходимо выделить квадрат километровой сетки, в котором находится вершина треугольника и выписать координаты его юго-западного угла. На рис. 10 для точки А Хюз=6067 км, Yюз=4311 км.

Рис. 10. Фрагмент карты с нанесенным преподавателем треугольником

Из точки А опускают перпендикуляры на стороны квадрата километровой сетки. С помощью измерителя и масштабной линейки определяют длины перпендикуляров относительно южной и западной стороны квадрата. То есть измеряют приращения координат. Для контроля вычисляют ΔХ’,ΔY’. Очевидно, что при отсутствии погрешности в измерениях должны выполнятся условия:

;

.

Практически таких равенств не получается из-за случайных и систематических погрешностей измерений (деформация бумаги, не точность установки игл измерителей в вершины, погрешности построения поперечного масштаба и т.д.). Однако, величина неравенства не должна превышать 0,3 мм в масштабе карты. Если условие выполняется, то окончательные координаты точки А можно вычислить по формулам.

;

.

Данные формулы и рекомендуется использовать при решении задачи 4.1. результаты измерений записывают в таблицы 1 и 2.

В случае если точка расположена не в полном квадрате, как например точка В, С на рис. х. выполнить контроль измерений невозможно. Так как на карте возможно измерить лишь одну величину ΔХ’ или ΔХ’, ΔY или ΔY’.

В таком случае значения координат точки А будут равны:

;

;

;

.

Недостатком изложенного способа является его бесконтрольность. Здесь любая грубая ошибка в измерении остается незамеченной. Поэтому на практике измеряют не только отрезки ∆ХА и ∆YA, но и продолжения их до северной и восточной сторон километровой сетки, т.е., ∆ХА ‘ и ∆YA‘. где D – длина стороны квадрата километровой сетки.

В качестве примера в этих таблицах приведены результаты измерения координат вершин треугольника АВС ( рис. 10).

Таблица 1.Абсциссы точек А, В, С.

Точка Xю.з, км ∆X, км ∆Х´, км Х, км
А 0.698 0,298 6067.700
В 0.578 0.422 6067.578
С 0.390 —— 6068.390

Таблица 2. Ординаты точек А, В, С.

Точка Yю.з, км ∆Y, км ∆Y´, км Y, км
А 4311 0.780 0.219 4311.780
В 4310 —- 0,172 4310,828
С 4311 0.164 0.832 4311.164

Задача 4.2. По измеренным в задаче 4.1 прямоугольным координатам вычислить длины сторон треугольника и сравнить их с непосредственно измеренными.

Задача распадается на 2 части. В первой части необходимо вычислить длины сторон по известной в математике формуле:

(10),

вычисленные расстояния записать в таблицу 4 с числом значащих цифр, соответствующих точности масштаба карты.

Вторая часть задачи заключается в непосредственном измерении длин сторон треугольника с помощью измерителя и построенного поперечного масштаба.

Результаты измерений также записать в таблицу 3. Найти расхождения между вычисленными и измеренными длинами сторон треугольника и дать анализ их соответствия точности масштаба карты. Перечислить причины возникновения этих расхождений.

Таблица 3. Значения длин сторон треугольника, полученные при вычислениях и измерениях

Линия Приращения координат Длины вычисленные, м Длины измеренные, м Расхож-дения, м
∆Y, км ∆X, км
AB -0,122 -0,952 -8
BC 0,812 0,336 -4
AC 0,690 -0,616 -2

Вопросы для самоконтроля

1. В чем сущность зональной системы прямоугольных координат?

2. Что принято за ось ординат и абсцисс в зональной системе координат?

3. В чем смысл преобразования ординаты?

4. Как определить номер зоны данного листа карты?

5. Какие погрешности влияют на точность измерения координат (длин линий) по карте?

6. Как определить длину отрезка, зная прямоугольные координаты его концов?

7. Как построить на карте точку по известным прямоугольным координатам?

Ориентирование

Ориентировать линию или карту – значит определить ее расположение относительно географического (истинного), осевого или магнитного меридианов [[5]].

Дирекционный угол– это горизонтальный угол, отсчитываемый от северного направления осевого меридиана или линии параллельной ему по ходу часовой стрелки до направления данной линии. Дирекционный угол измеряется в пределах 0° ≤ α ≤ 360°.Существует связь между прямыми и обратными дирекционными углами: αВААВ±180°.

Истинным азимутомназывается горизонтальный угол ориентирования, отсчитываемый от северного направления географического меридиана, отсчитываемый по ходу часовой стрелки до линии местности.Азимут истинный измеряется в пределах 0° ≤ АИ ≤ 360°.Существует связь между прямыми и обратными дирекционными углами: АИВАИАВ±180°.

Трудность ориентирования по азимуту истинному связана с изменением величины азимута от протяженности длины линии и широты точки, в которой он измеряется. Это вызвано тем, что меридианы не параллельны друг другу.

Отмеченные недостатки азимутов, как углов ориентирования, отсутствуют при ориентировании линий относительно осевого меридиана, так как положение осевого меридиана в пределах зоны постоянно.

Дирекционные углы отличаются от азимутов на величину гауссова сближения меридианов. АИ=α+γ

Гауссовым сближением меридианов (γ)называется угол между проекциями смежных меридианов на плоскости. Это угол образованный истинным и осевым меридианами.

Рис. 11. Схема расположения меридианов

Гауссово сближение меридианов может быть восточным или западным в зависимости от положения точки относительно осевого меридиана (рис. 11). Для восточной половины зоны сближение меридианов считается положительным, для западной – отрицательным. На топографической карте ниже южной рамки всегда указывается гауссово сближение меридианов для средней части листа.

Азимут магнитный – это горизонтальный угол, отсчитываемый от северного направления магнитного меридиана или линии параллельной ему по ходу часовой стрелки до направления данной линии.

Ориентирование линий относительно магнитного меридиана является наиболее простым в практическом исполнении, так как положение магнитного меридиана на местности даёт направление магнитной стрелки. Но такого рода ориентирование не находит широкого применения в массовых геодезических работах. Это обусловлено изменением величины склонения магнитной стрелки в зависимости от места и времени. Так, Европейской части России, восточное склонение колеблется от 0° (в районе Калининграда) до 20° (в районе Нарьян-Мара).

Склонение магнитной стрелки– это угол между северными направлениями истинного и магнитного меридиана (рис. 12). Cклонение магнитной стрелки может быть восточным и западным (рис. 12). Восточному склонению приписывают знак (+), западному (-). Это обусловлено положением магнитного меридиана относительно географического (истинного). Склонение претерпевает вековые, годовые и суточные изменения.

Вековые изменения склонения продолжительностью около четырех веков имеют амплитуду в несколько десятков градусов. Амплитуда годовых колебаний в Европейской части России в отдельных местах достигает 5°, а суточная – 15´. При этом изменение не имеют математически выраженных закономерностей, поэтому учет их представляет определенные трудности.

Рис. 12. Склонение магнитной стрелки

Кроме того, величина склонения изменяет свое значение под влиянием магнитных возмущений и магнитных бурь, связанных с полярным сиянием, солнечной активностью. В районах магнитной аномалии, а также вблизи линий электропередач положение магнитного меридиана становится неопределенным.

Все отмеченное выше не позволяет нанести на карту линии магнитных меридианов, а следовательно и измерить по карте магнитный азимут. В тоже время ниже южной рамки топографической карты всегда указывается склонение магнитной стрелки (δ) на дату составления карты, а также годовое изменение склонения. Это позволяет вычислить величину склонения на текущее время, а следовательно и значения истинного азимута.

Ориентирование по магнитному меридиану находит широкое применение в лесоустроительных работах и при картографировании небольших участков земной поверхности (менее 1км²). Поэтому часто возникает необходимость перехода от измеренных дирекционных углов или истинных азимутов к магнитным азимутам линий. Связь между ними определяется по формулам или графически (рис. 13):


Рис. 13. Связь между магнитными азимутами, дирекционными углами и истинными азимутами

В практике, кроме непосредственно измеренных углов ориентирования, часто используют их производные – румбы (рис. 14).

Румбом линииназывается угол между ближайшим (северным или южным) направлением меридиана и заданной линией. Направление относительно сторон света указывают названием соответствующей четверти, перед градусной величиной румба. Например: СВ: 45°00´, ЮЗ: 15°00´ и т.д.

Румбы могут быть истинными, дирекционными или магнитными в зависимости от названия меридиана, от которого он измеряется. Зависимости румба от угла ориентирования сохраняются, т.е. в формулах вместо α может стоять АИ, АМ.

Связь между румбами и основными углами ориентирования легко установить по рис.13 или таблице 6.

Рис. 14. Связь дирекционных углов и румбов

Таблица 4. Связь между румбами и дирекционными углами

Как найти координаты третьей вершины?

Прошу помочь в нахождении формул.

  • Вопрос задан более трёх лет назад
  • 21852 просмотра

Оценить 5 комментариев

Хорошо учился бы в школе, вопросов бы не задавал.

Рад, что предоставил вам возможность почувствовать себя образованнее.

«Если задать вопрос на американском форуме, вам 40 человек дадут подробный ответ на вопрос.
Если спросить на израильском форуме, вам в ответ зададут 40 вопросов.
А если спросить на русском форуме, вам 40 человек расскажут почему ты мудак и вопрос твой мудацкий» ©

Человек же просто спросил.

В таком случае уж начните с определений:

— какая перед Вами стоит задача;
— какой инструментарий Вам доступен;
— способны ли Вы найти сумму квадратов катетов.

В противном случае не совсем понятно на каком уровне Вам отвечать: дать ссылку на готовую библиотеку или научить пользоваться калькулятором.

Раз так, то пляшем от картинки:

Один из вариантов решения Вашей задачи: предположим, что центр системы координат совпадает с точкой A, таким образом Cx=b*cos(g+t), Cy=b*sin(g+t)

Угол g вычисляем по теореме косинусов или синусов, смотря что Вам идеологически ближе (теорему см. по фиолетовой ссылке).
Синус угла t будет равен By/c.

Следует обратить внимание на периодичность функций, не забывать про различия промеж градусами и радианами, поглядывать сюда и сюда а так же иметь в виду особенные случаи про которые в условии ничего не сказано.

Не так давно уважаемый тов. timyrik20 написал хабрапост на интересующую Вас тему.

Человек же просто спросил.

Человеку прям сразу и ответили. Вполне исчерпывающе, как на уровень хабра.

Решить треугольник Онлайн по координатам

1) длины и уравнения сторон, медиан, средних линий, высот, серединных перпендикуляров, биссектрис;

2) система линейных неравенств, определяющих треугольник;

2) уравнения прямых, проходящих через вершины параллельно противолежащим сторонам;

3) внутренние углы по теореме косинусов;

4) площадь треугольника;

5) точка пересечения медиан (центроид) и точки пересечения медиан со сторонами;

10) параметры вписанной и описанной окружностей и их уравнения.

Внимание! Этот сервис не работает в браузере IE (Internet Explorer).

Запишите координаты вершин треугольника и нажмите кнопку.

Алгоритм:

1. Найти угловой коэффициент АВ.
2. Найти угловой коэффициент АС.
3. Зная координаты А и угловой коэффициент АС, составить уравнение АС.

Дальше есть по крайней мере два варианта решения, оцени какой тебе проще:

1 вариант:

4. Составить уравнение окружности с центром в точке А и радиусом, равным АС.
5. Решая совместно уравнение по пункту 3 и 4, найти координаты точек С, которые могут быть как с одной, так и с другой стороны стороны АВ.

2 вариант:

4. Задавшись произвольными буквенными координатами X и Y точки С составляем два уравнения:
первое: принадлежность точки С прямой АС
равенство расстояния АС заданной величине.
5. Решая совместно полученную систему, получаете опять же два значения координат точки С

Будут вопросы – пиши в агент.

P.S. Кстати, в данной задаче величина АВ не нужна. Зная координаты А и в, ее можно вычислить. А так вводя параметр АВ, нужно проверять соответствует ли эта величина фактическому расстоянию между точками.

26 / 18 / 8

Регистрация: 08.06.2015

Сообщений: 481

1

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

22.05.2020, 19:22. Показов 6418. Ответов 15


Студворк — интернет-сервис помощи студентам

стыдно, но я не могу выйти на правильный ход мыслей, нашел на форуме похожую тему, но там есть в наличии уравнение прямой, а у меня есть все остальное, почти…

Дан прямоугольный треугольник ABC
точка С лежит на этом прямом угле
Известны длины всех сторон, известны координаты А и B.
По рисунку точек С должно получаться две по обе стороны гипотенузы.
Предполагаю, что это можно как-то через квадратное уравнение найти
Эти точки можно как-то вычислить?

Отталкиваюсь оттого, что векторы AС*BC = 0 в силу перпендикулярности

(Cx – Ax)(Cx – Bx) + (Cy – Ay)(Cy – By) = 0
переставляю числа переставляю, а что-то получить не получаю. Может, не оттуда отталкиваюсь?



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

22.05.2020, 19:22

15

Эксперт по математике/физике

6353 / 4062 / 1509

Регистрация: 09.10.2009

Сообщений: 7,550

Записей в блоге: 4

22.05.2020, 20:01

2

Лучший ответ Сообщение было отмечено Сергей Кос как решение

Решение

В данной задаче эта формула не применяется. Вернее, можно обойтись и без неё.
Решать можно по-разному. Например, определить полярный угол вектора https://www.cyberforum.ru/cgi-bin/latex.cgi?bar{AB} как https://www.cyberforum.ru/cgi-bin/latex.cgi?atan2left(B_1-A_1,B_2-A_2 right) (в языках программирования есть такая функция) и прибавить/вычесть острый угол при вершине А треугольника, который равен https://www.cyberforum.ru/cgi-bin/latex.cgi?arctg frac{a}{b}, это уже обычный арктангенс, напротив вершины А лежит катет а, напротив В катет b, как в школе. Получили полярный угол вектора https://www.cyberforum.ru/cgi-bin/latex.cgi?bar{AC}, т.е. нужно от точки А отложить вектор длины b с таким углом, чтобы попасть в его конец – в точку С. Получаем
https://www.cyberforum.ru/cgi-bin/latex.cgi?C=A+bleft(cos left(atan2left(B_1-A_1,B_2-A_2 right)+arctg frac{a}{b} right); : sin left(atan2left(B_1-A_1,B_2-A_2 right)+arctg frac{a}{b} right) right)
Т.о., вектор АС по отношению в вектору АВ будет повёрнут против часовой стрелки вокруг точки А (если система координат как у людей – ось OY вверх, а не как на мониторе вниз). Чтобы получить другую точку С, нужно взять arctg в обеих координатах со знаком “-”



1



26 / 18 / 8

Регистрация: 08.06.2015

Сообщений: 481

22.05.2020, 21:53

 [ТС]

3

jogano,
спасибо. Точка довольно далеко получается, но, скорее всего, я еще неправильно перенес формулу в код. Еще дорабатываю.
Уточнить хотел, а для равнобедренного трегольника, где известны координаты точек по основанию, и длины всех сторон,
также вычисляется? Или вот я смотрю на рисунок, вроде от середины основания если провести высоту, зная длину высоты и наличие перпендикулярности, нет, точнее вектор получается, что знаю, если есть прямой угол и его длина… или слишком мудрю?



0



Эксперт по математике/физике

6353 / 4062 / 1509

Регистрация: 09.10.2009

Сообщений: 7,550

Записей в блоге: 4

22.05.2020, 22:10

4

Цитата
Сообщение от Сергей Кос
Посмотреть сообщение

также вычисляется?

Да, тоже вычисляется – от середины АВ откладывается отрезок, равный высоте на АВ перпендикулярно АВ. Чуть позже напишу формулу.

Цитата
Сообщение от Сергей Кос
Посмотреть сообщение

известны координаты точек по основанию, и длины всех сторон

Вы уже второй раз пишете избыточное условие: в прямоугольном треугольнике достаточно знать координаты А, В и длину одного катета, другой катет и гипотенуза (если её длина нужна) вычисляются по этим данным. Для равнобедренного треугольника, если известны координаты концов основания, то длина тоже вычисляется, её не нужно давать отдельно. Может, потому у вас и рисунок выглядит на так, как хотелось бы, что вы задали длины катетов независимо от координат А и В?

Цитата
Сообщение от Сергей Кос
Посмотреть сообщение

точнее вектор получается, что знаю, если есть прямой угол и его длина… или слишком мудрю?

Да, мысль не улавливается.



1



3944 / 2858 / 665

Регистрация: 08.06.2007

Сообщений: 9,668

Записей в блоге: 4

22.05.2020, 22:40

5

Лучший ответ Сообщение было отмечено Сергей Кос как решение

Решение

Точку C можно искать как пересечение двух окружностей. Одна построена на отрезке AB как на диаметре, вторая — с центром в точке A с известным радиусом. Получится система двух квадратных уравнений, которую можно привести к системе линейного и квадратного, если вычесть одно уравнение из другого.



1



26 / 18 / 8

Регистрация: 08.06.2015

Сообщений: 481

22.05.2020, 23:26

 [ТС]

6

Цитата
Сообщение от palva
Посмотреть сообщение

Получится система двух квадратных уравнений,

два уравнения окружности один радиусом длиной высоты треугольника, другой с радиусом длиной бедра.

Сx2 + Cy2 = height2
Bx2 + By2 = bside2

Сx2 + Cy2 – Bx2 + By2 = height2 – bside2

Вроде так…

Добавлено через 4 минуты
вообще не в ту степь полез. Если я возьму центр окружности искомую точку, у меня же совсем другие пересечения будут…
не совсем понял, какие окружности надо проводить



0



3944 / 2858 / 665

Регистрация: 08.06.2007

Сообщений: 9,668

Записей в блоге: 4

23.05.2020, 00:38

7

1. Центр https://www.cyberforum.ru/cgi-bin/latex.cgi?(x_1,y_1) – середина отрезка AB, радиус https://www.cyberforum.ru/cgi-bin/latex.cgi?r_1 половина длины отрезка https://www.cyberforum.ru/cgi-bin/latex.cgi?AB.
2. Центр https://www.cyberforum.ru/cgi-bin/latex.cgi?(x_2,y_2) – точка A, радиус https://www.cyberforum.ru/cgi-bin/latex.cgi?r_2 длина отрезка https://www.cyberforum.ru/cgi-bin/latex.cgi?AC.
https://www.cyberforum.ru/cgi-bin/latex.cgi?begin{cases}(x-x_1)^2+(y-y_1)^2=r_1^2\(x-x_2)^2+(y-y_2)^2=r_2^2end{cases}



1



26 / 18 / 8

Регистрация: 08.06.2015

Сообщений: 481

23.05.2020, 00:47

 [ТС]

8

Цитата
Сообщение от palva
Посмотреть сообщение

1. Центр – середина отрезка AB, радиус половина длины отрезка AB.

у меня совсем другое вычерчивается. Если основание АВ будет меньше бедер треугольника, то и пересечений не будет.
Я вроде как центры взял по разные стороны основания, но с радиусом бедра треугольника… Почти закончил, скоро меня треугольник умолять будет оставить его в покое)))



0



3944 / 2858 / 665

Регистрация: 08.06.2007

Сообщений: 9,668

Записей в блоге: 4

23.05.2020, 00:52

9

Оба центра лежат НА основании. Один в середине основания, другой на конце.



0



26 / 18 / 8

Регистрация: 08.06.2015

Сообщений: 481

23.05.2020, 01:05

 [ТС]

10

да, но

Цитата
Сообщение от Сергей Кос
Посмотреть сообщение

радиус половина длины отрезка AB.

хорошо, центр я поправил, но половина длины отрезка AB меня смущает.
На рисунке я опять ошибся с центром, но я только хотел показать, что радиус слишком мал

Миниатюры

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



0



26 / 18 / 8

Регистрация: 08.06.2015

Сообщений: 481

23.05.2020, 01:06

 [ТС]

11

в таком случае вообще никаких пересечение нет



0



26 / 18 / 8

Регистрация: 08.06.2015

Сообщений: 481

23.05.2020, 01:20

 [ТС]

12

если взять за радиус высоту треугольника и провести окружность от центра основания АВ, а вторая окружность с центром В с радиусом длины бедра, вроде должно было бы сойтись… но я чисто предположил такой треугольник, не уверен работает ли это со всеми равнобедренными так

Миниатюры

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



0



Эксперт по математике/физике

6353 / 4062 / 1509

Регистрация: 09.10.2009

Сообщений: 7,550

Записей в блоге: 4

23.05.2020, 01:56

13

Лучший ответ Сообщение было отмечено Сергей Кос как решение

Решение

Вот вам формулы (для равнобедренного треугольника):
https://www.cyberforum.ru/cgi-bin/latex.cgi?C=frac{A+B}{2}pm frac{bar{left(-left(B_2-A_2 right),B_1-A_1 right)}}{left|AB right|} cdot sqrt{r^2-frac{left|AB right|^2}{4}}
Жаль, вы не дали буквенное обозначение для этого “бедра” (боковой стороны) – то ли b, то ли r… Я взял r.
Поворот от АВ к АС против часовой стрелки – в формуле вместо https://www.cyberforum.ru/cgi-bin/latex.cgi?pm взять “+”, поворот по – взять “-“. Реализация – в Геогебре при r=6, координаты А и В видны на картинке.
Формула получена откладыванием от середины АВ отрезка длиной, равной радикалу (теорема Пифагора), перпендикулярного к АВ орта (чтобы был орт, вектор в числителе делится на его длину).
Повышайте уже свой математический уровень хотя бы до 9-го класса, а вы зациклились на 7-м и 8-м, на уровне +-*/ и возитесь, возитесь с этой задачей, пытаясь решить её алгебраической системой вместо применения векторов и тригонометрии… Например, не надо вместо https://www.cyberforum.ru/cgi-bin/latex.cgi?left|AB right| писать https://www.cyberforum.ru/cgi-bin/latex.cgi?sqrt{left(B_1-A_1 right)^2+left(B_2-A_2 right)^2} – это и так понятно, формула 8-го класса. Зато формулы компактнее выглядят.

Миниатюры

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



1



26 / 18 / 8

Регистрация: 08.06.2015

Сообщений: 481

23.05.2020, 02:32

 [ТС]

14

эхехехе,
все работает с точностью до диаметра острия иголочки. И мне очень хочется уметь до такого додумываться самому. Возьму геометрию за 9 класс, буду начинать оттуда.
jogano, palva, благодарю за помощь и уделенное время



0



jogano

Эксперт по математике/физике

6353 / 4062 / 1509

Регистрация: 09.10.2009

Сообщений: 7,550

Записей в блоге: 4

23.05.2020, 02:41

15

Сергей Кос, вот интересно, в чём вы это проверяете/считаете? От этого, бывает, зависит и выбор метода. Например, в Матлабе для поиска длины вектора АВ с координатами как на рисунке не нужно считать радикал, есть функция встроенная norm:

Matlab M
1
2
3
4
5
6
7
8
9
>> A=[3 7];
>> B=[5 -4];
>> norm(B-A)
 
ans =
 
   11.1803
 
>>

И всё – одна команда. Зато по коду понятно, о чём речь идёт, что именно вычисляется.



0



26 / 18 / 8

Регистрация: 08.06.2015

Сообщений: 481

23.05.2020, 02:45

 [ТС]

16

Цитата
Сообщение от jogano
Посмотреть сообщение

вот интересно, в чём вы это проверяете/считаете?

ну в данном конкретном случае, у меня палочный человечек в unity, а треугольник это плечо – локоть – цель. Мне нужно было, чтобы локоть вставал на нижнюю точку искомой точки C, а оттуда рука уже дотянулась до цели. Вставил вашу формулу, и заработало как нужно. До этого у меня просто проверка шла, достаточно ли низко опустилась рука. А теперь получается элегантное решение



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

23.05.2020, 02:45

Помогаю со студенческими работами здесь

Как найти координаты третьей вершины треугольника, зная все стороны и две вершины?
Добрый день, подскажите как найти координаты третьей вершины треугольника?
Известны координаты…

Найти z координаты точек прямоугольного треугольника
Прямоугольный треугольник ABC находится в 3d пространстве.
Из точки B проведена высота вектор BH….

Найти координаты точки А прямоугольного треугольника
я пишу программу "генератор перемещения врагов" – самолет

мышкой устанавливаю точки маршрута (на…

Координаты вершины треугольника
Здравствуйте, не могу вывести формулу для нахождения координат угла треугольника, при 3 известных…

Найти координаты вершины треугольника
Условие:
Высота, проведённая из вершины A(4, 4) треугольника ABC, пересекает прямую BC в точке…

Найти координаты вершины треугольника
Даны две вершины треуголькика: А(2,4,-1) и В(-2,3,4). Найти третью вершину С, зная, что середина…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

16

Ребят. Не силен в математических преобразованиях. Может у кого есть готовая формула для поиска координаты третьей вершины (С) прямоугольного треугольника зная координаты двух других вершин (А и В). Так же известен катет АС и AB.

Из геометрии помню, что надо решать систему двух уравнений, но там черт ногу сломает… Может есть кого уже готовые формулы для нахождения x и y точки С?

задан 29 ноя 2016 в 11:08

GosuUndeadGhost's user avatar

1

Ну в общем-то всё просто.

  1. Вектор AB = B - A покоординатно. Делим обе координаты на длину, получаем единичный вектор, пусть будет v1.
  2. Поворачиваем вектор v1 на 90 градусов, получаем вектор вдоль другого катета. Пусть будет результат v2. Поворот по простой формуле:

    v2.x = -v1.y;
    v2.y = v1.x;
    

    Альтернативно поворот в другую сторону:

    v2.x = v1.y;
    v2.y = -v1.x;
    
  3. Имея единичный вектор v2 вдоль второго катета, умножаем покоординатно на длину второго катета, получаем вектор AC.

  4. Прибавляем к координатам A вектор AC, получаем точку C.

Будет два решения, для поворота по или против часовой стрелки.

ответ дан 29 ноя 2016 в 11:26

VladD's user avatar

VladDVladD

206k27 золотых знаков289 серебряных знаков521 бронзовый знак

2

Рабочий код на С++ по правильному ответу:

    //0. Длина катета АВ (ab):
    //   ab = Sqrt((xa_− xb_)^2+(ya_− yb_)^2)
    //1. Вектор AB = B - A, покоординатно. Делим обе координаты на длину, получаем единичный вектор (v1):
    //   v1.x =  (B.x - A.x) / ab  ===  v1x = (xb_ - xa_) / ab
    //   v1.y =  (B.y - A.y) / ab  ===  v1y = (yb_ - ya_) / ab
    //2. Поворачиваем вектор v1 на 90 градусов, получаем вектор вдоль другого катета (v2). Поворот по формуле:
    //   v2.x = -v1.y              ===  v2x = -v1y
    //   v2.y =  v1.x              ===  v2y =  v1x
    //   Альтернативно поворот в другую сторону:
    //   v2.x =  v1.y;
    //   v2.y = -v1.x;
    //3. Имея единичный вектор v2 вдоль второго катета, умножаем покоординатно на длину второго катета, получаем вектор AC:
    //   v3.x = v2.x * bc_         ===  v3x = v2x * bc_
    //   v3.y = v2.y * bc_         ===  v3y = v2y * bc_
    //4. Прибавляем к координатам A вектор AC, получаем точку C:
    //   xc_ = xa_ + v3x
    //   yc_ = ya_ + v3y
    void __fastcall TriangleStraight3V_01(int xa_, int ya_, int xb_, int yb_, int bc_, int &xc_, int &yc_)
    {
      int      x2x1 = xa_ - xb_;
      int      y2y1 = ya_ - yb_;
      double   ab   = Sqrt(x2x1*x2x1 + y2y1*y2y1);
      double   v1x  = (xb_ - xa_) / ab;
      double   v1y  = (yb_ - ya_) / ab;
      double   v3x  = (v1y > 0 ? -v1y :  v1y) * bc_;
      double   v3y  = (v1x > 0 ?  v1x : -v1x) * bc_;

      xc_ = xa_ + v3x;
      yc_ = ya_ + v3y;
    }

ответ дан 27 окт 2017 в 13:04

constconst's user avatar

0

Моя имплементация на Паскале правильного ответа. Основная функция:

function FindPointB(T: Triangle; no: Integer): Point;
var
  unitVec: Point;
begin

  // Единичный вектор:
  unitVec.x := (T.pointA.x - T.pointC.x) / T.sideB;
  unitVec.y := (T.pointA.y - T.pointC.y) / T.sideB;

  if no = 1 then begin  // первое решение.
    Result.x := T.pointC.x + (-unitVec.y * T.sideA);
    Result.y := T.pointC.y + (unitVec.x * T.sideA);
  end else begin  // второе решение.
    Result.x := T.pointC.x + (unitVec.y * T.sideA);
    Result.y := T.pointC.y + (-unitVec.x * T.sideA);
  end;

end;

В данной постановке задача имеет два решения. На примере египетского треугольника:

Два решения

Блок-схема с формулами:

Блок-схема

Пример выполнения программы:

Скриншот

ответ дан 16 фев 2018 в 17:00

Аббас Гусенов's user avatar

Метод на C#

  PointF GetOrtogonalPoint(PointF a, PointF b, float bc)
    {
        float x2x1 = a.X - b.X;
        float y2y1 = a.Y - b.Y;
        float ab = (float)Math.Sqrt(x2x1 * x2x1 + y2y1 * y2y1);
        float v1x = (b.X - a.X) / ab;
        float v1y = (b.Y - a.Y) / ab;
        float v3x = (v1y > 0 ? -v1y : v1y) * bc;
        float v3y = (v1x > 0 ? v1x : -v1x) * bc;

        PointF c = new PointF();
        c.X = a.X + v3x;
        c.Y = a.Y + v3y;
        return c;
    }

Направление задаётся знаком bc.

ответ дан 13 дек 2018 в 11:44

xaml's user avatar

xamlxaml

11 бронзовый знак

I want to locate precisely the 3rd coordinate of a right angled triangle.
I have:

  1. the length of three sides
  2. The three angles
  3. The other two coordinates of the triangle

The triangle can lie in any orientation in 2D coordinate system.

The three sides, angles and coordinates could be different in the piece of experiment and I am not working with any fix pair of values… I am actually dealing with multiple pairs of all above mentioned values.

I need a reliable and accurate way of finding the 3rd coordinate. Currently I have this formula but it calculated two pairs of coordinates (forming a butterfly) instead of the triangle.

Edit 2:

In the diagram that I mentioned and to which a (potential) solution has been presented, I have a confusion/connected question (because I believe this could be the cause of the problem).

Question:

Can $(x_1, y_1)$ and $(x_2, y_2)$ be any pair of the right angles triangle? or does $(x_1, y_1)$ must the coordinates of the right angle and $(x_2, y_2)$ for the base vertex?

Currently I get this:

Circles and Triangles formed

As you can see, the coordinate I am trying to get is draw way-off the border of the circle. The coordinate should be found on the border of the circles and not that far away in space.

As you might have guessed that I am trying to draw tangents between each circle. I have worked out rest of the code but the coordinate is being calculated incorrectly and thus the right angled triangle is formed incorrectly..

Edit (ignore this heading please):

I want to find only ONE triangle instead of the four possibilities.

http://awaismunir.net/universal/tangents/3rd-third-vertext-calculate-right-angled-triangle.gif

Calculate 3rd Vertext of Right angled triangle

Note:

I have already reviewed these urls:

Calculate coordinates of 3rd point (vertex) of a scalene triangle if angles and sides are known.

and

How to find the third coordinate of a right triangle given 2 coordinates and lengths of each side

Kindly help.

Thanks!

Steve

Добавить комментарий