本帖最后由 作者 于 2010-8-30 18:20:05 编辑
根据离散点生成三角网试用程序
注:此程序对图元重叠的情况一样可以正常使用,程序执行过程中消除重复图元。
以下为此程序演示
程序实现思路图解(注意与6楼贴子结合着看):
1、通过ssget函数,得到ABCDEFG点选择集m,
2、由ssname函数得到选择集m中第一点A(假设第一点是A),再从m选择集中找A点的最近点,得到B点(假如A点的最近点为B点),此时形成一条AB边。
3、将AB边左右两侧所有离散点CDEFG,分别与AB边连接形成三角形,判断形成的夹角哪个最大?得到最大夹角的那个三角形BCA(图中所示C点与AB边连接形成夹角最大,第一个三角形成,标示为1边),同时得到新边BC、CA,即1边
4、按逆时针方向,BC方向右侧离散点分别与BC边连接形成三角形,判断形成的夹角哪个最大?得到最大夹角三角形BFC(第二个三角形形成),同时得到新边BF、FC,即2边。
5、CA方向右侧离散点分别与CA边连接形成三角形,判断形成的夹角哪个最大?得到最大夹角三角CDA(第三个三角形形成),同时得到新边CD、DA,即2边。
6、此时图中所示的1边均以生成三角形,并得到多个新边2边,此时将1边排除,将2边做为1边,按以上45步骤操作,形成循环......,直到所有边都结束终止循环,形成三角网。 |