Как найти уравнение линии или нарисовать линию, учитывая начальную точку, длину линии и угол линии (относительно оси х)?
Уравнение линии с углом
Ответ 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). Вы можете настроить это для другой начальной точки, вычитая все из этой начальной точки.