C++判斷圖像中一點是否在矩形中


需要判斷出四條之間組成的矩形的范圍,其中矩形的邊緣可能是傾斜不平行於x或者y軸。

考慮和很久,參考博客http://blog.csdn.net/dapengbusi/article/details/50516126。

好像是個常規題此處來個表情:

 只需要判斷該點是否在上下兩條邊和左右兩條邊之間就行,判斷一個點是否在兩條線段之間夾着,就轉化成,判斷一個點是否在某條線段的一邊上,就可以利用叉乘的方向性,來判斷夾角是否超過了180度 如下圖:

只要判斷(p1 p2 X p1 p ) * (p3 p4 X p3 p1)  >= 0 就說明p在p1p2,p3p4中間夾着,同理計算另兩邊就可以了

核心代碼:

// 計算 |p1 p2| X |p1 p|  
float GetCross(Point p1, Point p2,Point p)  
{  
    return (p2.x - p1.x) * (p.y - p1.y) -(p.x - p1.x) * (p2.y - p1.y);  
}  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM