| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программирование игр, графики и искусственного интеллекта > Уравнение нахождения координат точек на векторе |
| Автор: helm2004 30.8.2010, 14:05 |
| Добрый день господа! Есть расстояние между т. А и т.В, между ними есть т.М, мне нужно найти координаты точки М, то есть АВ=АМ+МВ. Известно расстояние до М. Практический пример: есть два аэропорта с координатами х1у1 и х2у2 и расстоянием между ними 900км, нужно найти, где находиться самолёт, если он пролетел 2 часа с скоростью 200км за час. Если возможно, то опишите формулу. Спасибо за ответы! |
| Автор: Skevalt 30.8.2010, 16:29 |
| Пусть АМ/МВ = а1/а2, тогда Xm = Xa*a2/(a1 + a2) + Xb*a1/(a1 + a2) и Ym = Ya*a2/(a1 + a2) + Yb*a1/(a1 + a2) Попробуйте эти соотношения. Возможно, что я ошибаюсь, тогда поищите по запросу "координаты точки, делящей отрезок в заданном соотношении" |
| Автор: Bitter 30.8.2010, 17:24 |
| Skevalt, да ну что Вы, это ж линейная интерполяция обычная. P = A+c*k, где P - искомая точка A - точка А, начальная то есть с - вектор в точку B, находится так: с = B-A k - позиция на отрезке. изменяется от 0 до 1. 0 - точка А, 1 - точка B Зная что самолет пролетел 2 часа со скоростью 200 км/ч, мы получаем сколько он пролетел - 400 км, значит k = 400/900 = 0.44 P.X = A.X+(B.X-A.X)*k P.Y = A.Y+(B.Y-A.Y)*k |
| Автор: Skevalt 30.8.2010, 17:54 |
| Bitter, я привел решение векторного уравнения, а Вы линейную интерполяцию. И то, и то решение дают одни и те же формулы, если упростить и привести их к одному и тому же виду. Прикинуть на численном примере - результаты совпадут. Два разных подхода к задаче. Вы правы, линейная интерполяция нагляднее, а у меня в голове почему то вектор на векторе. |