在比较直线端点坐标时,我遇到了类似的问题。代码检查它们是否相等,每次都说它们不相等,即使这两条线是用端点捕捉绘制的。对我来说,他们是平等的,但对VBA来说,他们不是。差值为0.000000000001毫米!!!
我引入了模糊检查,如果差值小于我的模糊容差,则认为它们相等。你必须确定自己的容忍度。对于设计精密工具的人来说,这将不同于使用全球导航卫星系统坐标的人。
然后我得到了我预期的结果。
- ' first check the eastings of the start point
- If Abs(dblTempStart(0) - dblNewEnd(0)) < dblFuzzy Then
- ' then check the northings
- If Abs(dblTempStart(1) - dblNewEnd(1)) < dblFuzzy Then
- dblTemp(0) = dblTempStart(0)
- dblTemp(1) = dblTempStart(1)
- dblTemp(2) = dblTempStart(2)
- dblNewEnd(0) = dblTempEnd(0)
- dblNewEnd(1) = dblTempEnd(1)
- dblNewEnd(2) = dblTempEnd(2)
- objFound = True
- End If
- .
- .
- .
- Else
- .
- .
- .
- End If
你能利用这个吗? |