Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как вычислить координаты точки на прямой, зная координаты двух точек на прямой и расстояние до искомой точки?

Polkovnikov M. V. Профи (856), закрыт 4 года назад
Как вычислить x и y точки C, лежащей на прямой?
Зная:
Координаты точек А {x1; y1} и B {x2; y2}, лежащих на этой прямой
R - расстояние от точки B до искомой точки C на прямой
Лучший ответ
VeX Оракул (83018) 4 года назад
а точка D зачем? точнее точка d и r2 нужны чтоб вычислить смещение х и у
Polkovnikov M. V.Профи (856) 4 года назад
Просто для примера. Что расстояние может быть разным.
VeX Оракул (83018) нет. при помощи точки d вычисляется смещение х и у и потом зная это смещение и расстояние CB можно найти координаты. дерзай
Остальные ответы
сед Просветленный (40047) 4 года назад
подобные прямоугольные треугольники, где ав и р - гипотенузы, ав = корень из ((х2-х1)в квадрате + (у2-у1)в квадрате), ну и затем р/(х2-х3) = ав/(х2-х1) и р/(у2-у3) = ав/(у2-у1), х3и у3 - координатаы с, х2-х1 и у2-у1 и ав и р - известны, находятся х2-х3 и у2-у3
Стас Руднев Мыслитель (6014) 4 года назад
Для упрощения вычислений преобразуем координаты при помощи параллельного переноса с поворотом. Перенесем начало координат в точку В и повернем оси на 180°(рисунок для наглядности получим вращением исходной прямой вокруг тоски С на 180° и с началом координат в точке В в нормальном виде).
Старые координаты преобразуются в новой системе следующим образом: Ах = -х1 + х2 и Ay = -y1 + у2; Bx = -x2 + x2 = 0 и By = -y2 + y2 = 0; Cx = -x + x2 и Cy = -y + y2.
Переход от новых координат к старым осуществляется по формулам:
Хстар = - Хнов + Х2
Yстар = - Yнов + Y2

Найдем Сх и Cy в новой системе координат.
Из рисунка следуют две очевидные формулы:
1) Cx/Cy = Ax/Ay и
2) Cx² + Cy² = R²
из формулы 1) для С выражаем одну координату через другую: Cy = (Ay/Ax)·Cx = t·Cx, где t =(Ay/Ax)
Подставляя это в формулу 2) получим: Cx² + ( t·Cx)² = R² откуда выводим: Cx = R/√(1+t²) = R·Ax/√(Ax² + Ay²), и Cy = R·Ay/√(Ax² + Ay²)
Это координаты точки С в новой системе. В начальной системе эти координаты найдем по приведенным выше формулам:
X = - Cx + X2 = X2 - R·Ax/√(Ax² + Ay²), где Ах = -х1 + х2 и Ay = -y1 + у2 (подставляйте сами) и
Y = - Cy + X2 = X2 - R·Ay/√(Ax² + Ay²), где Ах = -х1 + х2 и Ay = -y1 + у2 (подставляйте сами).
Mikhail Levin Искусственный Интеллект (615536) 4 года назад
если это в программе, то пишем что-то вроде

vector3 A(x, y), B(c,d); // vector3 - простая библиотека для 3-мерных векторов.
vector3 BA = B-A;
BA = BA / !BA; // операция! берет норму, BA / !BA - единичный вектор, направленный A->B
vector3 С = B - r*BA;
Похожие вопросы