Вопрос

В 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) убедитесь, что вы понимаете, нужны ли математическим функциям градусы или радианы, и предоставьте им соответствующие аргументы.

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

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

Вы также можете написать вектор следующим образом:

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

где

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

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

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

 alt text
(источник: controlsheet.com ) р>

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top