判斷某一點在直線的左右側的演算法

2021-06-26 16:39:28 字數 408 閱讀 7603

判斷某一點在直線左右側:

左右方向是相對前進方向的,只要指定了前進方向就可以知道左右(比如指定前進方向是從直線的起點到終點).

判斷點在直線的左側還是右側是計算幾何裡面的乙個最基本演算法,使用向量來判斷。

定義:平面上的三點p1(x1,y1),p2(x2,y2),p3(x3,y3)的面積量:

s(p1,p2,p3)=|y1 y2 y3|= (x1-x3)*(y2-y3)-(y1-y3)*(x2-x3) 

當p1p2p3逆時針時s為正的,當p1p2p3順時針時s為負的。 

令向量的起點為a,終點為b,判斷的點為c, 

如果s(a,b,c)為正數,則c在向量ab的左側; 

如果s(a,b,c)為負數,則c在向量ab的右側; 

如果s(a,b,c)為0,則c在直線ab上。

利用向量計算快速判定一點在直線的哪一側

很實用的一片判斷點與直線關係的文章,這個例子是用來說明向量運算可以快速判定一點在直線的哪一側。如上圖所示,直線是從pa到pb的直線ab。下面的工作是構建乙個方法,來判斷某點在這條直線ab的左下側還是右上側。如上圖所示,pc點就在直線ab的右上側,而pd點就在直線ab的左下側。這裡要用向量運算來解決這...

直線外一點到直線的距離

已知直線上兩點求直線的一般式方程 已知直線上的兩點p1 x1,y1 p2 x2,y2 p1 p2兩點不重合。則直線的一般式方程ax by c 0中,a b c分別等於 a y2 y1 b x1 x2 c x2y1 x1y2 直線外一點到直線的距離 p 的座標為 xo,yo 則點 p 到直線 l 的距...

2D中如何判斷一點在另乙個點的那個方位

在工作中經常遇到判斷乙個點在另乙個點的那個方位的問題,如下圖,這裡需要確定p2在p1的那個方位,也就是求p2相對於p1落在區域1,2,3,4那個中,注意此處p1不是座標原點,座標原點在螢幕的左上角 此處為螢幕座標 這個問題的解決方法有很多,可以使用向量夾角來做,使用該夾角的方法涉及到向量的乘除,速度...