Консультация онлайн # 161241

Раздел: Математика
Автор вопроса: Pandroid
Дата: 24.02.2009, 09:10 Консультация неактивна
Поступило ответов: 1
Доброго времени суток! Нужна помощь, сам пока не додумался до решения smile вообщем, сущетвуют две точки на прямой, одна из них имеет координаты (х1,у1) которые даны, расстояние r меджу точками тоже задано, еще задан угол, под которым проходит данная прямая относительно оси Х. Требуется найти координаты второй точки. Пожалуйста, помогите найти способ вычисления smile
Здравствуйте, Pandroid!
Пусть (x2, y2) - координаты второй точки.
Если угол α равен 90º или 180º, то решение тривиальное: x2 = x1, y2 = y1 ± r.
Пусть α ≠ 90º + n*180º, 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(α), тогда
(y2 - y1) / (x2 - x1) = tg(α) (I)

Далее, рассмотрим квадрат расстояния между двумя точками, который по теореме Пифагора равен:
r2 = (y2 - y1)2 + (x2 - x1)2
Т.к. мы рассматриваем случай α ≠ 90º, то x2 ≠ x1, тогда разделив на (x2 - x1)2, получим:
r2 / (x2 - x1)2 = ((y2 - y1) / (x2 - x1))2 + 1
А тогда, по (I):
r2 / (x2 - x1)2 = tg2(α) + 1 = 1 / Cos2(α)
Отсюда (x2 - x1)2 = r2 * Cos2(α)
И x2 = x1 ± r * Cos(α)
Подставляя в (I), получим:
y2 = y1 ± r * Sin(α)
Т.о. мы нашли две точки. Знак в выражениях определяется значением угла (в каком он квадранте).
Например, если 0 ≤ α < 90º, то имеем две точки:
(x1 + r * Cos(α), y1 + r * Sin(α)) и
(x1 - r * Cos(α), y1 - r * Sin(α))
PS Это очень легко представить графически: откладываем точки на расстоянии r по прямой по обе стороны от первой точки
Удачи!

Лысков Игорь Витальевич

Советник
24.02.2009, 11:51
Нет оценки ответа

Мини-форум консультации # 161241

Лысков Игорь Витальевич

Советник

ID: 7438

177595

= общий =    24.02.2009, 11:59
Чуть подправил в ответе описки (в такой куче верхних, нижних индексов и спецсимволов не грех и запутаться smile )
=====
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Лысков Игорь Витальевич

Советник

ID: 7438

177598

= общий =    24.02.2009, 12:08
Кстати, можно было решать графически: рисуем прямую, точки, строим прямоугольные треугольники
и получаем те же результаты...
=====
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.