兩直線平行交叉相乘 兩線段相交相關演算法

2021-10-12 15:37:15 字數 1102 閱讀 9313

兩線段相交的相關演算法

徐明龍2013-01-24

前提:1)

點的大小比較a)設

p1(x1,y1),p2(x2,y2)

b)如果

x1 > x2

則p1 > p2

c)如果

x1 = x2

且大小由y1與

y2的關係決定

d)如果

x1 則

p1 2)

線的大小比較a)設

l1(p1,p2),l2(p3,p4)

b)如果

p1 則

l1c)

如果p1 = p3

則大小有

p2,p4

關係決定

d)如果

p1 > p3

則l1>l2

3)線的約束,線

p1始終小於p2且

p1 <> p2

演算法:獲取線的直線斜率(

x軸垂直時返回無窮大

,x軸平行時為零。

(p2.y

p1.y)/(p2.x-p1.x)

a)2中特殊情況需要先考慮,一直垂直於

x軸,和平行於x軸。

如果垂直於

x軸,則

p.x=p1.x

即可。如果平行於

x軸,則

p.y=p1.y

即可。b)

其他情況根據點斜公式判斷(

p.y-p1.y

斜率*(p.x-p1.x)

a)b)p1且

p在p1>p2

的直線上,如果

p>=p1

且p <=p2則p

必定在p1

p2的線段上。

兩點的向量公式:

x=p1.x-p2.x

y=p1.y-p2.y

向量的叉積(即向量相乘

v1*v2

v1*v2=v1.x*v2.y-v1.y*v2.x

獲取兩線段相交的型別。方法如下:

a)先判斷是否端點相交的情況

端點相交有以下幾種模式:p3在

p1p2

的線段上,

p4不在

p1p2

的直線上

兩直線平行交叉相乘 十字交叉法解析

十字交叉雙乘法沒有公式,一定要說的話 那就是利用 x 2 p q x pq x q x p 其中pq 為常數。x 2是 x的平方 1.因式分解 即和差化積,其最後結果要分解到不能再分為止。而且可以肯定乙個多項式要能分解因式,則結果唯一,因為 數域 f上的次數大於零的多項式 f x 如果不計零次因式的...

兩直線平行交叉相乘 十字交叉雙乘法沒有公式

十字交叉雙乘法沒有公式,一定要說的話 那就是利用 x 2 p q x pq x q x p 其中pq 為常數。x 2是 x的平方 1.因式分解 即和差化積,其最後結果要分解到不能再分為止。而且可以肯定乙個多項式要能 分解因式,則結果唯一,因為 數域 f上的次數大於零的多項式 f x 如果不計零 次因...

求兩直線交點 判斷兩線段相交 求線段交點

點的結構 struct point point double x,double y 線段的結構 struct egde egde point a,point b 建立的邊,存在的線段求兩直線 線段 交點 void getpoint point p1,point p2,point p3 point p...