大家帮我看一下
<P>我现在有个问题:</P><P> 就是我单选图形中的一个圆,如它和其它实体相交有三个交点的话就用红色将它显示出来,代码如下:</P>
<P> ThisDrawing.Utility.GetEntity cir, pt, "Pick a text" '单选一个圆</P>
<P> For Each objPolys In selpoints ‘遍历selpoints选择集中的实体<BR> intPoints = cir.IntersectWith(objPolys, acExtendNone) '相交<BR> If UBound(intPoints) <> -1 Then<BR> For l = LBound(intPoints) To UBound(intPoints)<BR> l = l + 2<BR> n = n + 3<BR> k = k + 1<BR> Next<BR> End If<BR> Next objPolys<BR> <BR> If k > 2 Then '判断有2个以上交点的圆<BR> cir.Color = acRed<BR> End If</P>
<P> 单选个圆,然后上面的结果都正确,有二个交点以上时就显示为红色,如没有则不变</P>
<P> 那好,现在我想在这个基础上,想遍历一个圆选择集而不是一个个的去单选</P>
<P> 'ThisDrawing.Utility.GetEntity cir, pt, "Pick a text" '这一句注销<BR> <BR> For Each cir In selcir '遍历selcir选择集中的圆<BR> For Each objPolys In selpoints<BR> 'For Each cir In selcir<BR> intPoints = cir.IntersectWith(objPolys, acExtendNone)<BR> If UBound(intPoints) <> -1 Then<BR> For l = LBound(intPoints) To UBound(intPoints)<BR> l = l + 2<BR> n = n + 3<BR> k = k + 1<BR> Next<BR> End If<BR> Next objPolys<BR> <BR> If k > 2 Then '判断有2个以上交点的圆<BR> cir.Color = acRed<BR> End If<BR> <BR> Next cir</P>
<P> 运行的结果:所有的圆都为红色了,而不是只有相交点2个以上的才显示为红色!不知是错在那里,大家帮忙看一下</P> <P>for循环怪怪的,不用它,直接判断UBound(intPoints)的值,</P>
<P>k=(UBound(intPoints)+1)/3</P>
页:
[1]