GP再改进:
1.为了适应任意管状封闭曲线, 将第一步网格数的确定方式改为自适应方式,即使用周长与面积的开根号的比例来控制,这样可以避免陷入非最优解的困扰;
2.强制第2步Step2的网格细分数为10,10等分已经足够让半径的精度提高1个等级了;
3.改进Grid_2的计算区域,减少为原来的1/4,即将原来为上次网格划分的16个区格改为4个区格;
- ;;old grid_2 area
- + + + + +
- + + + + +
- + + o + +
- + + + + +
- + + + + +
- ;;new grid_2 area
- + + +
- + o +
- + + +
复制代码 4.改进点在曲线点集内的计算函数,仅使用angle函数,效率比原来提高了非常多倍;
5.使用控制精度的while循环来替代原本由次数控制的repeat循环,既提高了精度又可能减少大量运算,一般情况下都比原来快些;
6.限制循环次数,避免存在条状最大圆的情况陷入死循环。
新代码如下:
|