Здраствуйте, юные дарования)
Решая Некую математическую проблемму
я решил узнать, а как найти направление вектора по кординатам?
(пояснение)
Допустим у нас есть вектор с кординатами (0|0)(1|-1)
Угол даного вектора равен 45ти.
А вот другой пример -> вектор с кординатами (-1|1)(0|0)
Вроде почти ничего не поменялось, но угол уже 225.
Нужно уравнение которое бы из двух точек на графике координат
давало мне угол или в градусах, или радиана.
За правильное решение дам дополнительно 100 баллов)
Ответы на вопрос
Пусть есть две точки вектора:
Сначала найдём координаты самого вектора:
Обозначим:
Тогда угол направления вектора считается не через обычный арктангенс, а через функцию atan2:
Эта функция сама учитывает, в какой четверти находится вектор, поэтому она различает углы 45° и 225°.
Например:
1) Вектор из (0;0) в (1;-1)
Получаем:
Тогда:
Результат:
Если нужен угол от 0 до 360°, добавляем 360°:
(Если считать направление относительно оси X вниз по часовой стрелке, получится 45°, но в стандартной математической системе координат это -45° или 315°.)
2) Вектор из (-1;1) в (0;0)
Координаты вектора:
Получился тот же самый вектор, поэтому угол тоже будет:
А если взять вектор в обратную сторону — из (0;0) в (-1;1), тогда:
и:
Получаем:
Если в используемом языке программирования нет функции atan2, её можно заменить формулой:
но потом обязательно нужно вручную проверять четверть:
- если , угол остаётся как есть;
- если и , прибавляем 180°;
- если и , прибавляем 180°;
- если получился отрицательный угол — прибавляем 360°.
Именно из-за отсутствия этой проверки обычный арктангенс часто даёт неправильное направление: он не знает, с какой стороны оси находится вектор. atan2 как раз создан для нахождения угла направления по двум координатам.
Похожие вопросы
Топ вопросов за вчера в категории Математика
Последние заданные вопросы в категории Математика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

