代码之家  ›  专栏  ›  技术社区  ›  Zinx

带角度的直线方程

  •  20
  • Zinx  · 技术社区  · 15 年前

    在给定起点、直线长度和直线角度(相对于X轴)的情况下,如何找到直线方程或绘制直线?

    5 回复  |  直到 10 年前
        1
  •  8
  •   rgettman    11 年前

    直线方程如下:

    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

    第二种方法是找到端点。

    length^2 = (endPoint_X - startPoint_X)^2 + (endPoint_Y - startPoint_Y)^2
    

    只有两件事我们仍然不知道:终结点 如果我们重写方程:

    length^2 = (endPoint_X - startPoint_X)^2 + ( m*(endPoint_X) + n - startPoint_Y)^2
    

    现在我们知道了所有的事情,除了终点。 这个方程将给出端点x的两个解。 然后你可以找到两个不同的点。

        2
  •  30
  •   Artelius    15 年前

    你知道的起点 (x1, x2) 终点是 (x1 + l * cos(ang), y1 + l * sin(ang)) 哪里 l 是长度和 ang 是角度。

        3
  •  17
  •   Akshit Zaveri    11 年前

    让我们开始吧 (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
  •  3
  •   Vanuan tacaswell    10 年前

    实际上有两个不同的问题:一个在标题中,另一个在正文中。

    我们先从标题回答问题开始:

    直线方程

    直线的方程是

    y = a*x + b
    

    哪里 a 是直线和X轴之间角度的正切,以及 b 是通过(0,0)绘制的线的高程。

    给定角度和点的直线方程

    你可以很容易地计算 (因为你知道角度),但你不知道 B . 但你也知道 x0 y0 ,这样您就可以轻松计算 :

    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
  •  1
  •   Peter    15 年前

    你会想把它从 (0, 0) (x_length, tan(angle)*x_length) . 梯度将是 tan(angle) . 您可以通过从该起点减去所有内容,将其调整为不同的起点。