如果给定起点,线的长度和线的角度(相对于x轴),我如何找到线的方程或绘制线?
答案 0 :(得分:32)
起点您知道(x1, x2)
,终点为(x1 + l * cos(ang), y1 + l * sin(ang))
,其中l
为长度,ang
为角度。
答案 1 :(得分:17)
让我们将行(x1, y1)
的另一端称为起始点(x2, y2)
。
然后,如果给出长度[L]和x轴[a]的角度:
x2 = x1 + (L * cos(a))
y2 = y1 + (L * sin(a))
如果角度来自y轴 - 交换cos和sin。
从(x1,y1)
到(x2, y2)
划线。
您可能会发现您希望线路朝哪个方向模糊不清, 你需要小心定义你的角度。
答案 2 :(得分:8)
一条线的方程式如下:
m*x + n = y
m可以通过角度计算; m = tan(angle)
如果你知道一个起点,那么你可以找到n。
tan(angle) * startPoint_X + n = startPoint_Y
所以n = startPoint_Y - (tan ( angle) * startPoint_X )
如果你想绘制一个线段,你知道长度,起点和角度,将会有两个方程式。
第一个是m*x + n = y
(我们已经解决了)。
这意味着m*(endPoint_X) + n = endPoint_Y
第二个是找到endPoint。
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。
答案 3 :(得分:3)
实际上有两个不同的问题:一个在标题中,另一个在正文中。
让我们首先回答标题中的问题:
线方程
一条线的等式是
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)。
你知道Hypotenusa(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)
答案 4 :(得分:1)
您需要将其从(0, 0)
绘制到(x_length, tan(angle)*x_length)
。渐变为tan(angle)
。您可以通过从该起点减去所有内容来为不同的起点调整此值。
答案 5 :(得分:0)
计算直线方程
y = mx + b
从点 (x1, y1) 和任意角度 α 我们需要区分两种情况:
m = cot(α)
b = x1 - m * y1;
m = tan(α)
b = y1 - m * x1