C 求直線方程並求直線延長線上的某點的演算法

2021-10-01 15:12:47 字數 766 閱讀 9991

a1/a2=b1/b2≠c1/c2←→兩直線平行

a1/a2=b1/b2=c1/c2←→兩直線重合

橫截距a=-c/a

縱截距b=-c/b

表示斜率為k,且過(x0,y0)的直線

表示與x軸、y軸相交,且x軸截距為a,y軸截距為b的直線

表示斜率為k且y軸截距為b的直線

表示過(x1,y1)和(x2,y2)的直線

直線方程求解是乙個相對簡單的過程,使用的是斜截式方程,先考慮特殊情況,在用斜截式的方法替換就行,pt1和pt2為起點,nlen為延長的距離可為負數,outpt為計算的延長的點。

#include

typedef

struct point //二維點結構

point

(double xx,double yy)

}sdpoint;

bool expandline

(sdpoint pt1,sdpoint pt2,double nlen,sdpoint& outpt)

else

}else

if(pt1.y - pt2.y ==0)

else

}else

else

}else

else}}

return true;

}

求直線的引數方程

如果二維空間內有兩個點 2,1 和 0,2 那麼經過這兩點的直線方程是什麼?初中的知識可以告訴我們,斜率是 k displaystyle frac 現在使用向量和引數方程來理解這個問題。假設在二維空間內有兩個向量 a 2,1 和 b 0,2 如下圖所示 乙個不太準確的說法是,將 b a 的兩端延長,...

基於opencv求直線方程

在影象處理中,得到目標邊緣的點,希望擬合精確的直線方程,一下 給出一些二維點,即可輸出直線方程,精確到亞畫素級 求直線方程 struct ptonline bool cmpacs ptonline a,ptonline b void removeptx vector points,double sm...

求兩直線的交點

一般方程法 直線的一般方程為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 ...