如何从两个点找到一条线的一般形式方程?(How can I find the general for

2019-08-02 08:52发布

鉴于输入:

double x1,y1,x2,y2;

如何找到的一般形式的公式(双A,B,C,其中斧由+ C = 0 +)?

注:我希望能够做到这一点的计算。 因此,等效斜截式会是这样的:

double dx, dy;
double m, b;

dx = x2 - x1;
dy = y2 - y1;
m = dy/dx;
b = y1;

显然,这是很简单的,但我一直没能找到一般方程的形式解(这是比较有用的,因为它可以做垂直线)。 我已经看过我的线性代数书两个书计算几何(包括太超前解释这一点)。

Answer 1:

如果从方程开始y-y1 = (y2-y1)/(x2-x1) * (x-x1)其是由两个点所定义的直线的方程式),通过一些操作可以得到(y1-y2) * x + (x2-x1) * y + (x1-x2)*y1 + (y2-y1)*x1 = 0 ,并且可以识别出:

  • a = y1-y2
  • b = x2-x1
  • c = (x1-x2)*y1 + (y2-y1)*x1


Answer 2:

减去两分拿到切线(x2-x1, y2-y1) 正常化,并旋转90度,以获得法线矢量(a,b) 就拿点积与其中一个点,以获得恒定的, c



Answer 3:

快捷步骤: “ 问题:(4,5)(3,-7)” 解:M = -12 / 1,然后12X-Y = 48注:m为斜率COPY分子,贴上“X”阳性分数对之间负号。 3.添加X1:(尖端simmilar符号= +添加复制符号)1.更改所述第二组为相反的符号,2.加Y1至Y2(装置增加或减少它们取决于符号的),以X2(也意味着加或减去它们取决于该标志),4.然后乘12和1的任何问题组。 认为“BOOM”田田!之后,你有你的答案



Answer 4:

如果从定义线从2分方程开始

(x - x1)/(x2 - x1) = (y - y1)/(y2 - y1)

你可以用下式结束

x(y2 - y1) - y(x2 - x1) - x1*y2 + y1*x2 = 0

这样的系数为:

  • 一个= Y2 - Y1
  • B = - (X2 - X1)= X1 - X2
  • C = Y1 * X2 - X1 * Y2

我的实现在C算法

inline v3 LineEquationFrom2Points(v2 P1, v2 P2) {
    v3 Result;

    Result.A = P2.y - P1.y;
    Result.B = -(P2.x - P1.x);
    Result.C = P1.y * P2.x - P1.x * P2.y;

    return(Result);
}


Answer 5:

#include <stdio.h>
main()
{
    int a,b,c;
    char x,y;
    a=5;
    b=10;
    c=15;
    x=2;
    y=3;
    printf("the equation of line is %dx+%dy=%d" ,a,b,c);
}


文章来源: How can I find the general form equation of a line from two points?
标签: geometry