多邊形內部最大圓,為什么不能說最大內切圓?如果正方形或正凸多邊形,最大內部圓是與邊相切的,但對于不規則多邊形,很多情況是正好經過一些凹點。
本次介紹在NX中計算封閉邊界內部最大圓:
1、首先按順序排序曲線 或 之前連接曲線成一條線
UF_CURVE_auto_join_curves
2、離散曲線,按順序取點,注意直線段只取一個點,防止增加運算次數
UF_MODL_ask_curve_points
3、以封閉邊界平面為參考,創建二維矩陣,即方塊格子
長度個數 = 長/格子邊長 + 1
寬度個數 = 寬/格子邊長 + 1
4、獲取在曲線邊界內的點位:參考如下博客
c語言實現點在多邊形內部,判斷點在多邊形內算法的C++實現-CSDN博客
5、計算點到多邊形的距離,找到最接近點:參考如下博客
點到線段的最短距離算法-CSDN博客
6、在最接近點周圍取點迭代,直到找到在設置好的公差內的點:參考如下博客
任意多邊形的最大內切圓算法-CSDN博客
以上運算,實際過程均是點位運算,并未使用NX的測量命令。
最后注意,隨著邊界的BOX尺寸變化,運行時間變化較大,因此需要對二維矩陣點位進行尺寸歸一,這樣運算速度變化就不會太大了,尺寸歸一會導致尺寸大的模型縮小時的細節特征丟失。