@Ascold2019

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

Доброго времени суток!

Есть три трехмерных вектора:

Вектор 1 (100, 100, 10)
Вектор 3 (500, 500, 20)
И вектор 2, который начинается с вектора 1 и имеет модуль, скажем, 100.

При этом, вектор 2 должен заканчиваться в точке, лежащей на векторе 3.

Получить нужно как раз эту точку - конечную точку вектора 2.

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

Картинка для наглядности - проекция XY
62f942c616255258056458.jpeg
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
wataru
@wataru
Разработчик на С++, экс-олимпиадник.
Одно квадратное уравнение. Пусть точка конца имеет координаты t*v3. Уранение: |t*v3-v1|^2=100^2 (расстояние от начала до конца - 100). Распишите длину как сумму квадратов разностей по всем координатам. Там квадратное уравнение на t, ведь координаты v1 и v3 даны. Найдите положительный корень.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
hint000
@hint000
у админа три руки
Можно решить через простую школьную тригонометрию. У нас треугольник с известными длинами двух сторон (вектор1 и вектор2) и известным углом (вектор1, вектор3). Нужно найти третью сторону.
По теореме синусов |вектор1|/sin(вектор2,вектор3)=|вектор2|/sin(вектор1,вектор3) получаем второй угол. Из двух углов получаем третий угол. И опять по теореме синусов получаем искомую длину. Из длины и направления вектора3 получаем точку.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы