[讨论]一起来编一个单向offset
RetVal = object.Offset(Distance)Object
Arc, Circle, Ellipse, Line, LightweightPolyline, Polyline, Spline, XLine<BR>使用该方法的对象。
Distance
Double[双精度]; 仅用于输入<BR>该方法中的“Distance”是用来指定偏移距离的。 偏移可以是正值或负值,但不能等于0。如果偏移为负值,这意味着将得到更“小”的曲线 (例如,一个圆以负值偏移后的得到的圆的半径将会比原对象半径小). 如果“小”没有意义,则AutoCAD将向小的X,Y,Z WCS坐标方向偏移。如果偏移距离无效,则返回错误。<BR>[明经通道特别提示]对于的 LightweightPolyline 和 Polyline 对象,曲线有顺时针方向和逆时针方向,对于顺时针方向,距离值为正值时为向内偏移,距离值为负值时为向外偏移。对于逆时针时刚好相反。对于自相交的多段线的偏移方向需要自己慢慢实践了。 <BR><BR>RetVal
Variant[变体] (对象数组)<BR>可以以原始对象来偏移出一系列的新曲线对象。
讨论:一起来编一个单向offset,让distance >0 时,pl线无关时针方向,总是得到面积更大方向的偏移实体(向外偏移)。反之,。。。 <FONT color=#000000>就是要判断LightweightPolyline 和 Polyline 的点的顺序的问题吧?</FONT>
<FONT color=#000000>好像没这么简单?</FONT>
把偏移以后的曲线与前一个曲线比较一下不就可以了,如果长度小,就反方向做偏移 这种怎么算?而且SPLINE OFFSET后可能产生多条曲线
这个可以这么判断:
如果偏移为负值,这意味着将得到更“小”的曲线 (例如,一个圆以负值偏移后的得到的圆的半径将会比原对象半径小). 如果“小”没有意义,则AutoCAD将向小的X,Y,Z WCS坐标方向偏移。
如下图:红线是dist>0时候的偏移效果
不过这个问题可能比较复杂,还是约定在“闭合曲线”的范围里面吧 也就是说对偏移方法的完善吧。让它不论是哪种曲线都会按照负值向小的方向偏移。 没搞明白无痕说的是要哪种效果,传个演示的上来看看是不是这个意思
晕 700KB 的附件上传不上来吗??最大可以上传多大的
分成两个文件了 好像和你的演示无关,是指曲线的Offset方法
不过如果是单纯的封闭曲线Offset方法的改进就稍微简单点了 其他情况得要先有个界定,比如自相交的,有的向内offset,面积反而变大,dist>0时候应该按什么来偏移,需要个大家比较认同的界定方法。这里仅举一例来说明,如果要做适应范围更广的,最好先对各种情况有个统一的界定方法。
页:
[1]