多边形内部最大圆,为什么不能说最大内切圆?如果正方形或正凸多边形,最大内部圆是与边相切的,但对于不规则多边形,很多情况是正好经过一些凹点。
本次介绍在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尺寸变化,运行时间变化较大,因此需要对二维矩阵点位进行尺寸归一,这样运算速度变化就不会太大了,尺寸归一会导致尺寸大的模型缩小时的细节特征丢失。