Ограничение рисования линии до углов 45 градусов - PullRequest
0 голосов
/ 30 января 2010

У меня есть начальная точка (x1, y1) и желаемая длина и угол линии.

Если углы были направлениями, 0 градусов - это W, 90 - это N, 180 - это E и 270 - это S. Я могу изменить это при необходимости.

Как я могу использовать начальную точку, длину и угол для определения конечной точки (x2, y2)?

Ответы [ 2 ]

7 голосов
/ 30 января 2010

x2 = x1 + длина cos (угол)
у2 = у1 + длина
грех (угол)

В этом случае угол увеличивается против часовой стрелки, а 0 указывает на положительное значение x. Ось x увеличивается вправо, а ось y вверх.

4 голосов
/ 30 января 2010

Для экрана:

Для W = 0, N = 90, E = 180, S = 270:

x2 = x1 - length * cos(angle)
y2 = y1 - length * sin(angle)

Для E = 0, N = 90, W = 180, S = 270:

x2 = x1 + length * cos(angle)
y2 = y1 - length * sin(angle)

Обратите внимание, что вам нужно убедиться, что ваша реализация cos работает в градусах, а не в радианах, иначе вы получите линии под странными углами.

...