Получить наклон из одной точки и угол в градусах - PullRequest
2 голосов
/ 30 ноября 2009

В javascript я пытаюсь нарисовать линию под углом, определяемым пользователем.

По сути, у меня есть точка (x, y) и угол, чтобы создать следующую точку в. Длина линии должна составлять 10 пикселей.

Скажем, для начала нужно указать точку (180, 200) ... если я задам ей угол "А", а гипотенуза (я думаю) равна 10, каким будет мое уравнение (я), чтобы получить Х а Y для склона?

Спасибо за вашу помощь!

Ответы [ 4 ]

7 голосов
/ 30 ноября 2009

хорошо, из базовой тригонометрии ...

грех A ° = Y / 10

cos A ° = X / 10

10 ^ 2 = Y ^ 2 + X ^ 2

3 голосов
/ 30 ноября 2009

Как мрачно подразумевал мистер Дойл, математика не так уж сложна, но:

1) Убедитесь, что вы четко знаете, на какой угол ссылаются, и в каких направлениях идут ваши координаты; Наиболее простые триггерные операции предполагают, что вы имеете дело с традиционными декартовыми координатами, где x увеличивается вправо, а y увеличивает вверх страницы, тогда как в большинстве API-интерфейсов рисования y увеличивается вниз по странице и x увеличивается вправо.

2) убедитесь, что вы понимаете, нужны ли математическим функциям градусы или радианы, и предоставьте им соответствующие аргументы.

2 голосов
/ 30 ноября 2009

Предполагая, что 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))
1 голос
/ 01 декабря 2009

Возможно, лучший способ взглянуть на проблему - использовать векторы:

alt text
(источник: rulesheet.com )

Вы также можете написать вектор так:

alt text
(источник: rulesheet.com )

где

alt text
(источник: rulesheet.com )

Установка первого равного второму позволяет нам определить конечную точку с учетом начальной точки, угла и расстояния:

alt text
(источник: rulesheet.com )

alt text
(источник: rulesheet.com )

...