码迷,mamicode.com
首页 > 其他好文 > 详细

n条直线交点拟合求交点

时间:2015-05-29 12:05:26      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:直线拟合   求交点   

  1. 直线方程的公式有以下几种形式
    斜截式:y=kx+b
    截距式:x/a+y/b=1
    两点式:(x-x1)/(x2-x1)=(y-y1)/(y2-y1)
    一般式:ax+by+c=0(可以表达任意直线)
    只要知道两点坐标,代入任何一种公式,都可以求出直线的方程

  2. 一般式方程在计算机领域的重要性
    常用的直线方程有一般式 点斜式 截距式 斜截式 两点式等等。除了一般式方程,它们要么不能支持所有情况下的直线(比如跟坐标轴垂直或者平行),要么不能支持所有情况下的点(比如x坐标相等,或者y坐标相等)。所以一般式方程在用计算机处理二维图形数据时特别有用。
    已知直线上两点求直线的一般式方程
    已知直线上的两点P1(X1,Y1) P2(X2,Y2), P1 P2两点不重合。则直线的一般式方程AX+BY+C=0中,A B C分别等于:
    A = Y2 - Y1
    B = X1 - X2
    C = X2*Y1 - X1*Y2
    参考:http://blog.csdn.net/madbunny/article/details/43955883
    3.求两直线交点一般方程法:
    直线的一般方程为F(x) = ax + by + c = 0。既然我们已经知道直线的两个点,假设为(x0,y0), (x1, y1),那么可以得到a = y0 – y1, b = x1 – x0, c = x0y1 – x1y0。
    因此我们可以将两条直线分别表示为
    F0(x) = a0*x + b0*y + c0 = 0, F1(x) = a1*x + b1*y + c1 = 0
    那么两条直线的交点应该满足
    a0*x + b0*y +c0 = a1*x + b1*y + c1
    由此可推出
    x = (b0*c1 – b1*c0)/D
    y = (a1*c0 – a0*c1)/D
    D = a0*b1 – a1*b0, (D为0时,表示两直线平行)
    二者实际上就是连立方程组
    F0(x) = a0*x + b0*y + c0 = 0,
    F1(x) = a1*x + b1*y + c1 = 0
    参考:http://blog.csdn.net/abcjennifer/article/details/7584628
    设两直线的交点为:(x,y)

    [a0a1b0b1c0c1]???xy1???=0(1)

    若有n条直线拟合求交点,则同时联立(1)式中2n个方程,即:
    ?????????????a10a11a20a21...an0an1b10b11b20b21...bn0bn1c10c11c20c21...cn0cn1????????????????xy1???=0(2)

n条直线交点拟合求交点

标签:直线拟合   求交点   

原文地址:http://blog.csdn.net/u010177286/article/details/46226183

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!