求教!使用vla-Offset偏移多段线时距离正负如何确定?
我想用vla-Offset向内偏移多段线、
但是不知道偏移距离的正负如何确定
求教一下各位大神!
有没有什么方法、可以快速确定这个偏移距离的正负
本帖最后由 llsheng_73 于 2024-11-18 10:45 编辑
xiaocainiao 发表于 2024-11-17 14:59
如何判断先的前进方向啊
起点到下一点的方向啊(站在起点位置往下一点方向看,用负值一定是往左偏移的,正值一定是往右),这个与线是否闭合都适用的,闭合属于特殊情况,它的前进方向表现为顺时针或逆时针方向,如果为了固定往闭合线外偏(或内偏),就需要判断它的顺逆特征,逆时针方向正值往外偏,负值往内偏(顺时针方向则刚好相反),实际上也是符合前进方向左负右正的
多说一句,offset方法返回的是一个variant,因为线段的转折角和偏移量的原因,可能偏移后产生0条线段(因为偏移量过大往内偏移产生错误,比如对圆以大于等于半径的量往内偏移)或多条线段,可以对返回值通过vlax-variant-value转为safearray数组,然后就可以访问所有因为OFFSET产生的新图元对象了 查宝典,上面是这么说的
Distance : Double; input-only
The distance to offset the object. The offset can be a positive or negative number, but it cannot equal zero. If the offset is negative, this is interpreted as being an offset to make a "smaller" curve (that is, for an arc it would offset to a radius that is "Distance less" than the starting curve's radius). If "smaller" has no meaning, then it would offset in the direction of smaller X, Y, and Z WCS coordinates.
kozmosovia 发表于 2024-11-16 23:35
瞎扯,跟方向没有毛线关系。
正数是生成更长的曲线,负数是短的。
不知道你这个说的是不是 vla-Offset 但是实际测试就是和绘制方向有关的 正数时 偏移的方向 在多段线绘制方向的右侧 弧 不管怎么画 起止点都是逆时针的 正数在右 自然就是更长的那一面 本帖最后由 vitalgg 于 2024-11-16 22:49 编辑
需要判断多段线的点的转角方向是顺时针还是逆时针。
(curve:clockwisep (car(entsel)))
vitalgg 发表于 2024-11-16 22:48
需要判断多段线的点的转角方向是顺时针还是逆时针。
(curve:clockwisep (car(entsel)))
瞎扯,跟方向没有毛线关系。
正数是生成更长的曲线,负数是短的。 kozmosovia 发表于 2024-11-16 23:35
瞎扯,跟方向没有毛线关系。
正数是生成更长的曲线,负数是短的。
我之前就是以为负数是始终向内、结果并不是这样、所以才来论坛请教一下、这个正负到底怎么确定 vitalgg 发表于 2024-11-16 22:48
需要判断多段线的点的转角方向是顺时针还是逆时针。
(curve:clockwisep (car(entsel)))
我试一下、谢谢大神 鼠标向量叉乘曲线上某点切向量 vla-Offset,先做一个(正),如果检查不对,删掉再做个(负)。 最保险的肯定是直接做两个方向偏移,然后判断,不合适的删除。
单纯判断大小或者顺逆时针,对于复杂曲线,可能不准确的。尤其是内凹曲线,有些段是顺的,另外有些段可能是逆的。 kozmosovia 发表于 2024-11-17 12:05
最保险的肯定是直接做两个方向偏移,然后判断,不合适的删除。
单纯判断大小或者顺逆时针,对于复杂曲线 ...
我现在就是这样干的、楼上大神说的 (curve:clockwisep (car(entsel))) 这个其实也是这种方法