用最簡單, 最快速的方法計算出下面這個圓形是否和正方形相交。"
3D坐标系 原點(0.0,0.0,0.0)
圓形:
半徑r = 3.0
圓心o = (*.*, 0.0, *.*)
正方形:
4個角坐标;
1:(*.*, 0.0, *.*)
2:(*.*, 0.0, *.*)
3:(*.*, 0.0, *.*)
4:(*.*, 0.0, *.*)
計算正方形四個頂點和圓的關系,分3鐘情況:
1.圓内圓外都有頂點,相交
2.4個都在圓内,不相交
3.4個都在圓外,計算正方形每條邊的 線段 與圓心到每條邊的垂線交點(交點必須在邊的線段上),如果有一個交點在圓内,相交。 否則,不相交。
假設圓心為O,正方形四個頂點是ABCD,分别計算OA,OB,OC,OD
令min_d = min(OA,OB,OC,OD)
max_d = max(OA,OB,OC,OD)
如果 min_d <= r <= max_d ,則相交
如果 max_d < r ,則在圓内,不相交
如果 max_d > r && min_d > r, 則計算O到四條邊的距離并取最小的即為minEdgeDistance,如果minEdgeDistance<=r,則相交