java是什么 如何用代數(shù)運(yùn)算判斷一個點(diǎn)與一個矩形的位置關(guān)系?
如何用代數(shù)運(yùn)算判斷一個點(diǎn)與一個矩形的位置關(guān)系?如果您事先知道矩形的邊與坐標(biāo)軸平行,則可以使用XL=min(x1,x2,x3)XR=max(x1,x2,x3)yL=min(y1,y2,y3)yR=max
如何用代數(shù)運(yùn)算判斷一個點(diǎn)與一個矩形的位置關(guān)系?
如果您事先知道矩形的邊與坐標(biāo)軸平行,則可以使用XL=min(x1,x2,x3)XR=max(x1,x2,x3)yL=min(y1,y2,y3)yR=max(y1,y2,y3),如果您事先不知道矩形的邊是否與坐標(biāo)軸平行,則可以使用XL<=X<=XR,yL<=X<=y,你一定有點(diǎn)麻煩。這里有一個方法。P=(x,y),P1=(x1,Y1),P2,P3相似。首先,您需要確定由三個已知頂點(diǎn)組成的三角形中哪個是直角頂點(diǎn)(計(jì)算哪一側(cè)最長)。設(shè)P2為直角頂點(diǎn),然后計(jì)算第四個頂點(diǎn)P4=(x4,Y4)=(x1,X2,x3-2*X2,Y1,Y2,y3-2*Y2)。接下來可以計(jì)算四個三角形和| pp1p2 | pp2p3 | pp3p4 | | Pp4p1 |的面積,這里不用有向面積,直接計(jì)算絕對值(三角形面積可以用行列式計(jì)算)并與矩形面積比較。如果相同,則表示P在矩形中(包括邊界)。否則,四個三角形的面積之和將始終大于矩形面積。如果你想判斷P是否在邊界上,只要看看四個三角形的面積是否為零就可以了