Консультация № 161241
24.02.2009, 09:10
0.00 руб.
0 3 1
Доброго времени суток! Нужна помощь, сам пока не додумался до решения вообщем, сущетвуют две точки на прямой, одна из них имеет координаты (х1,у1) которые даны, расстояние r меджу точками тоже задано, еще задан угол, под которым проходит данная прямая относительно оси Х. Требуется найти координаты второй точки. Пожалуйста, помогите найти способ вычисления

Обсуждение

давно
Посетитель
7438
7205
24.02.2009, 11:51
общий
это ответ
Здравствуйте, Pandroid!
Пусть (x2, y2) - координаты второй точки.
Если угол [$945$] равен 90[$186$] или 180[$186$], то решение тривиальное: x2 = x1, y2 = y1 [$177$] r.
Пусть [$945$] [$8800$] 90[$186$] + n*180[$186$], n=0,1 (т.е. у нас не вертикальная прямая)
Известно, что уравнение прямой, проходящей через две точки имеет вид:
(y - y1)/(y2 - y1) = (x - x1)/(x2 - x1)
Преобразуем его к виду y=k*x+c:
y = y1 + x * ((y2 - y1) / (x2 - x1)) - x1 / (x2 - x1)
Известно, что коэффициент k = tg([$945$]), тогда
(y2 - y1) / (x2 - x1) = tg([$945$]) (I)

Далее, рассмотрим квадрат расстояния между двумя точками, который по теореме Пифагора равен:
r2 = (y2 - y1)2 + (x2 - x1)2
Т.к. мы рассматриваем случай [$945$] [$8800$] 90[$186$], то x2 [$8800$] x1, тогда разделив на (x2 - x1)2, получим:
r2 / (x2 - x1)2 = ((y2 - y1) / (x2 - x1))2 + 1
А тогда, по (I):
r2 / (x2 - x1)2 = tg2([$945$]) + 1 = 1 / Cos2([$945$])
Отсюда (x2 - x1)2 = r2 * Cos2([$945$])
И x2 = x1 [$177$] r * Cos([$945$])
Подставляя в (I), получим:
y2 = y1 [$177$] r * Sin([$945$])
Т.о. мы нашли две точки. Знак в выражениях определяется значением угла (в каком он квадранте).
Например, если 0 [$8804$] [$945$] < 90[$186$], то имеем две точки:
(x1 + r * Cos([$945$]), y1 + r * Sin([$945$])) и
(x1 - r * Cos([$945$]), y1 - r * Sin([$945$]))
PS Это очень легко представить графически: откладываем точки на расстоянии r по прямой по обе стороны от первой точки
Удачи!
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
7438
7205
24.02.2009, 11:59
общий
Чуть подправил в ответе описки (в такой куче верхних, нижних индексов и спецсимволов не грех и запутаться )
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
7438
7205
24.02.2009, 12:08
общий
Кстати, можно было решать графически: рисуем прямую, точки, строим прямоугольные треугольники
и получаем те же результаты...
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Форма ответа