Как получить координаты точек X, Y от угла линии? - PullRequest
3 голосов
/ 08 февраля 2011

Итак, у меня есть квадрат 8х8. В этом есть строчка.

Line size == 8 angle == 0. 

Одна из точек линии всегда находится на одном из верхних углов.

Какой будет формула для получения координат точек, где линия пересекает границы квадрата? (положительный угол означает, что одна из точек линии равна 0, 0. отрицательная 0, 8)

Какой будет математическая формула для каждой из точек координат? (в псевдокоде, если это возможно)

1 Ответ

6 голосов
/ 08 февраля 2011
line_end_x = line_start_x + cos(angle)*line_length

line_end_y = line_start_y + sin(angle)*line_length

если ваша линия пересекает вертикальный край:

intersection_x = edge_x
intersection_y = line_start_y + (intersection_x - line_start_x) * tan(angle)

если ваша линия пересекает горизонтальный край:

intersection_y = edge_y
intersection_x = line_start_x + (intersection_y - line_start_y) * tan(angle-pi/4)

РЕДАКТИРОВАТЬ: исправлено

...