wyj7485 发表于 2004-9-24 10:36:00

有关IntersectWith的问题

Dim IntPoint As Variant<BR>IntPoint = Obj1.IntersectWith(Obj2, acExtendNone)


If VarType(IntPoint) &lt;&gt; vbEmpty Then


...


End If


VarType(IntPoint)无论在相交与否都返回8197(不相交时为0),请问为什么?

雪山飞狐_lzh 发表于 2004-9-24 11:10:00

if ubound(IntPoint)&gt;-1 then

zfbj 发表于 2004-9-24 11:11:00

这与该函数的内部实现机制有关,如果两者不相交,是不是返回了一个空的数组?

雪山飞狐_lzh 发表于 2004-9-24 14:46:00

Dim a As AcadLine<BR>Set a = ThisDrawing.ModelSpace(0)<BR>Set b = ThisDrawing.ModelSpace(1)<BR>c = a.IntersectWith(b, acExtendNone)<BR>MsgBox UBound(c)<BR>MsgBox IsArray(c)


试试这段代码,如果a,b不相交UBound(c)=-1


这在VB里是做不出来的,下界为0,上界为-1 ?但是有确实是一个数组<BR>

wyj7485 发表于 2004-9-28 08:28:00

感谢<A name=54501><FONT color=#990000><B>lzh741206</B></FONT></A>!



ubound(IntPoint)=-1---------------无交点


ubound(IntPoint)=2*n---------------n个交点


如果两直线重合,用IntersectWith返回-1。
页: [1]
查看完整版本: 有关IntersectWith的问题