santalin
发表于 2010-8-11 17:06:00
ljttjl发表于2010-8-6 10:16:00static/image/common/back.gif根据离散点生成三角网试用程序
1、通过ssget函数,得到ABCDEFG点选择集m,
2、由ssname函数得到选择集m中第一点A(假设第一点是A),再从m选择集中找A点的最近点,得到B点(假如A点的最近点为B点
</div>
<p> 我看了一下。点稍微多一点的话都会很费时间啊</p>
santalin
发表于 2010-8-11 17:06:00
有没有更高效的算法?不要遍历的
highflybir
发表于 2010-8-13 22:02:00
<p>先贴上一个arx文件,命令是ddd</p>
<p>暂时在2004-2006版本可以使用。</p>
<p>毕竟是arx,很快了,不过点数很多的时候还是有点点慢,代码还在进一步优化:</p>
<p> </p>
<p><font face="Verdana">选择对象: 指定对角点: 找到 9570 个</font></p>
<p><font face="Verdana">选择对象: Elapsed Time for Incremental Delaunay: 59937.000000 ms</font></p>
<p> </p>
<p>估计LISP的那个程序如果算10000个点,可能算不出来。</p>
<p> </p>
highflybird
发表于 2010-8-14 11:36:00
<p>再传一个速度更快的</p>
<p>还可以更优化, 基本能做到10000个点不到1秒中,才算是真正的n*log(N)的下限。</p>
<p></p>
<p> </p>
<p>命令:kkk</p>
santalin
发表于 2010-8-14 15:37:00
highflybird发表于2010-8-14 11:36:00static/image/common/back.gif再传一个速度更快的
还可以更优化, 基本能做到10000个点不到1秒中,才算是真正的n*log(N)的下限。
computationalgeometry.arx
下载需付 0 个明经币
文件大小:216 KB,下载次
<p>能共享一下代码吗?</p>
highflybir
发表于 2010-8-14 16:06:00
本帖最后由 作者 于 2010-8-14 16:48:48 编辑 <br /><br /> <p><font face="Verdana"><a href="http://www.cnblogs.com/soroman/archive/2007/05/17/750430.html">http://www.cnblogs.com/soroman/archive/2007/05/17/750430.html</a></font></p>
<p>源码来自网上哦,你可以自己去看看。</p>
<p>介绍一个源码网址,里面有VC++,也有VB的。希望你能找到一个适合的算法。</p>
<p> <font face="Verdana">http://search.codesoso.com/Search?q=free+code+for+delaunay+triangulation+algorithm</font></p>
santalin
发表于 2010-8-18 11:33:00
highflybir发表于2010-8-14 16:06:00static/image/common/back.gifhttp://www.cnblogs.com/soroman/archive/2007/05/17/750430.html
源码来自网上哦,你可以自己去看看。
介绍一个源码网址,里面有VC++,也有VB的。希望你能找到一个适合的算法。
http:
</div>
<p> 3KU</p>
highflybir
发表于 2010-8-19 23:48:00
<p>这次再发一个更快一点的:命令为ddd,选取一堆随机点,然后就可以看到结果了.</p>
<p> </p>
<p></p>
<p> </p>
<p>10万个点居然1秒钟都不到。是采用了分治的算法,时间复杂度为N*log(N),以后建一个新帖讨论Delaunay三角剖分和Voronoi图。这两个东西在CAD中还是很有作用。</p>
<p> </p>
qjchen
发表于 2010-8-23 08:54:00
<p>highflybird兄的程序真是快的离谱啊,瞬间完成。</p>
<p> </p>
<p>非常佩服</p>
santalin
发表于 2010-8-23 10:13:00
highflybir发表于2010-8-19 23:48:00static/image/common/back.gif这次再发一个更快一点的:命令为ddd,选取一堆随机点,然后就可以看到结果了.
10万个点居然1秒钟都不到。是采用了分治的算法,时间复杂度为N*log(N),以后建一个新帖讨论Delaunay三角剖分
<p>怎么实现的啊?有代码吗?</p>