Как найти уравнение линии или нарисовать линию, учитывая начальную точку, длину линии и угол линии (относительно оси х)?
Уравнение линии с углом
Ответ 1
Уравнение прямой похоже на:
m*x + n = y
m можно вычислить по углу; m = tan(angle)
И если вы знаете начальную точку, вы можете найти n.
tan(angle) * startPoint_X + n = startPoint_Y
So n = startPoint_Y - (tan ( angle) * startPoint_X )
Если вы хотите нарисовать сегмент линии и знаете длину, начальную точку и угол, будут два уравнения.
Первая m*x + n = y
(мы ее решили).
И это означает m*(endPoint_X) + n = endPoint_Y
Во-вторых, чтобы найти конечный пункт.
length^2 = (endPoint_X - startPoint_X)^2 + (endPoint_Y - startPoint_Y)^2
Есть только две вещи, которые мы еще не знаем: endPoint_x и endPoint_Y Если мы перепишем уравнение:
length^2 = (endPoint_X - startPoint_X)^2 + ( m*(endPoint_X) + n - startPoint_Y)^2
теперь мы знаем все, кроме endPoint_X. Это уравнение даст нам два решения для endPoint_X. Затем вы можете найти два разных ednPoint_Y.
Ответ 2
Исходная точка, которую вы знаете (x1, x2)
, конечная точка (x1 + l * cos(ang), y1 + l * sin(ang))
, где l
- длина, а ang
- это угол.
Ответ 3
Позвольте называть начальную точку (x1, y1)
другим концом строки (x2, y2)
.
Тогда, если вам задана длина [L] и угол от оси x [a]:
x2 = x1 + (L * cos(a))
y2 = y1 + (L * sin(a))
Если угол от оси y - замените cos и sin.
Нарисуйте вашу строку от (x1,y1)
до (x2, y2)
.
Вы можете найти двусмысленность относительно того, в каком направлении вы хотите, чтобы линия шла, вам нужно быть осторожным, как вы определяете свой угол.
Ответ 4
На самом деле есть два разных вопроса: один в заголовке, другой в теле.
Начнем с ответа на вопрос из заголовка:
Уравнение линии
Уравнение прямой
y = a*x + b
где a
- тангенс угла между линией и осью X, а b
- возвышение линии, проведенной через (0, 0).
Условный угол линии и точка
Вы можете легко вычислить a
(поскольку вы знаете угол), но вы не знаете b
. Но вы также знаете x0
и y0
, поэтому вы можете легко вычислить b
:
b = y0 - a*x0
Теперь уравнение выглядит так:
y = tan(fi)*x + y0 - tan(fi)*x0 = tan(fi)*(x - x0) + y0
Нарисуйте отрезок заданной точки, угла, длины
Мы хотим нарисовать отрезок от начальной точки, так что длина L и угол к оси x равна fi.
Это совершенно другая проблема.
Вы должны представить прямоугольный треугольник, острый угол которого расположен в точке (x0, y0).
Вы знаете Гипотенузу (L) и угол (fi).
По определению
a = L*cos(fi) (adjacent, x)
b = L*sin(fi) (opposite, y)
Все, что вам нужно, это добавить x0 и y0:
x1 = x0 + L*cos(fi)
y1 = y0 + L*sin(fi)
Ответ 5
Вы хотите нарисовать его от (0, 0)
до (x_length, tan(angle)*x_length)
. Градиент будет tan(angle)
. Вы можете настроить это для другой начальной точки, вычитая все из этой начальной точки.