Найти точки на краю экрана с углом и радиусом - PullRequest
0 голосов
/ 27 января 2020

У меня есть квадрат с границами от (0,0) до (800 600). В этом растре я должен нарисовать линию, мне даны угол и радиус линии, начиная с точки (0,0 ). Эти границы основаны на экране с разрешением 800x600

Я знаю, как рассчитать (X, Y) точки из этой точки, X = Радиус * Cos (Угол) Y = Радиус * Грех (Угол)

Но с этого момента я не знаю, как продолжить. На изображениях ниже я определил мои варианты использования. (X3, Y3) - это точки, которые я знаю, как рассчитать, как сказано выше. Но как мне найти (X1, Y1) и (X2, Y2)?

Угол и радиус могут быть всевозможными значениями, см., Например, значения ниже. Когда X3 и Y3 имеют отрицательное значение, я знаю, что (X1, Y1) и (X2, Y2) не попадут в растр.

Example 1

Example 2

Example 3

Я думаю, что это не сложно для расчета, но я просто не знаю, как сделать это.

1 Ответ

1 голос
/ 27 января 2020

Линия от начала координат может быть выражена уравнением

y = mx

, где наклон m = y3 / x3. Вам понадобится линия, перпендикулярная вашей первой линии, что означает, что она имеет наклон

m' = -1/m

. Поэтому ее можно выразить уравнением

y = m'(x-x3) + y3

Точка (X1, Y1 ) будет иметь X1 = 0, а Y1 можно рассчитать через Y1 = m'x + y3. Точка (X2, Y2) будет иметь Y2 = 0 и X2 = (y - Y2) / m '+ x3.

...