wholin 发表于 2006-9-1 09:25:00

用什么方法得到图形中最近的两个点呢?

有什么好方法能实现:遍历图形后得到最近的两个点呢?

iq0050 发表于 2006-9-1 09:36:00

<P>好象只能用遍历来判断,没有更简单的方法了.</P>
<P>dim colAllPoint as collection</P>
<P>dim P1 as variant</P>
<P>dim P2 as variant</P>
<P>dim minP1 as variant</P>
<P>dim minP2 as variant</P>
<P>dim i as integer</P>
<P>dim j as integer</P>
<P>dim minDis as double</P>
<P>minDis=65500</P>
<P>for i=1 to colAllPoint.count</P>
<P>&nbsp;&nbsp;&nbsp; p1=colAllPoint.item(i)</P>
<P>&nbsp;&nbsp;&nbsp; for j= i+1 to colallpoint.count</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p2=colAllPoint.item(j)</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if&nbsp; minDis&gt;sqr((p1(0)-p2(0))^2+(p1(1)-p2(1))^2) then</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; minDis=sqr((p1(0)-p2(0))^2+(p1(1)-p2(1))^2)</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; minP1=P1</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;minP2=P2</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; endif</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; next j</P>
<P>next i</P>
<P>这个代码是假设你取到了所有的点集</P>
<P>代码是直接写在贴上的没测试,大概就是这个意思,不知道还有没有更简单的方法.能利用ACD内部功能的.全当抛砖了.</P>
页: [1]
查看完整版本: 用什么方法得到图形中最近的两个点呢?