Получить наклон от одной точки и угол в градусах
-
10-07-2019 - |
Вопрос
В javascript я пытаюсь нарисовать линию под углом, определяемым пользователем.
По сути, у меня есть точка (x, y) и угол для создания следующей точки. Длина линии должна составлять 10 пикселей. Р>
Скажем, для начала нужно указать точку (180, 200) ... если я задам ей угол "A" и (я предполагаю) гипотенуза равна 10, что бы мои уравнения были, чтобы получить X и Y для наклона?
Спасибо за вашу помощь!
Решение
Предполагая, что H = Гипотенуза (10 в вашем примере), это формула для вашего наклона:
Y2 = H(Sin(A)) + Y1
= 10(Sin(A)) + 200
X2 = Sqrt((H^2)-(Y2^2)) + X1
= Sqrt(100 - (Y2^2)) + 180
Итак, теперь у вас есть
(180, 200) -> (X2, Y2)
Где X2, Y2 будут варьироваться в зависимости от значений A и H
Для проверки нашего расчета - A (как введено пользователем) можно рассчитать, используя уравнение наклона, заменив значения X1, X2, Y1 и Y2 исходным и результирующим выходом.
A = InvTan((Y2 - Y1) / (X2 - X1))
= InvTan((Y2 - 200) / (X2 - 180))
Другие советы
ну, из базовой тригонометрии ...
грех A & # 176; = Y / 10
cos A & # 176; = Х / 10
10 ^ 2 = Y ^ 2 + X ^ 2
Как мрачно намекал мистер Дойл, математика не такая уж сложная, но:
1) Убедитесь, что вы четко понимаете, к какому углу относится и в каких направлениях идут ваши координаты; Наиболее простые триггерные операции предполагают, что вы имеете дело с традиционными декартовыми координатами, где x увеличивается вправо, а y увеличивает вверх страницы, тогда как в большинстве API-интерфейсов рисования y увеличивается вниз по странице и x увеличивается вправо. Р>
2) убедитесь, что вы понимаете, нужны ли математическим функциям градусы или радианы, и предоставьте им соответствующие аргументы.
Возможно, лучший способ взглянуть на проблему - использовать векторы:
(источник: rulesheet.com ) р>
Вы также можете написать вектор следующим образом:
(источник: rulesheet.com ) р>
где
(источник: rulesheet.com ) р>
Установка первого равного второму позволяет нам определить конечную точку с учетом начальной точки, угла и расстояния:
(источник: rulesheet.com )
(источник: controlsheet.com ) р>