南林浣风 发表于 2015-4-16 20:20:12

lisp中怎样判断绘制的多段线是顺时针还是逆时针绘制的

本帖最后由 南林浣风 于 2015-4-17 20:36 编辑

lisp中怎样判断绘制的闭合多段线是顺时针还是逆时针绘制的


http://bbs.mjtd.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 南林浣风的微博

479274135 发表于 2018-8-11 09:20:02

真是好多高手出手呀此贴么白来学习不少

重慶崽兒 发表于 2015-4-16 20:57:15

额多段线好像没有顺时针和逆时针之分吧

434939575 发表于 2015-4-16 21:21:04

http://bbs.mjtd.com/forum.php?mod=viewthread&tid=85286&highlight=%C4%E6%CA%B1%D5%EB

434939575 发表于 2015-4-16 21:22:11

答案在那里

南林浣风 发表于 2015-4-16 21:36:01

434939575 发表于 2015-4-16 21:22 static/image/common/back.gif
答案在那里

好的,谢谢哥们了

llsheng_73 发表于 2015-4-17 12:07:10

本帖最后由 llsheng_73 于 2015-4-17 12:09 编辑

(defun Pldir(pts)
(<(apply'+(mapcar'(lambda(x y)(-(*(car x)(cadr y))(*(car y)(cadr x))))pts(append(cdr pts)(list(car pts)))))0))
(defun plinexy(e / p i)
(setq i -1)
(mapcar(function(lambda(x)(list(car x)(cadr x))))(reverse(repeat(fix(1+(vlax-curve-getEndParam e)))
    (setq i(1+ i)p(cons(vlax-curve-getPointAtParam e i)p)))))
(if(equal(car p)(last p))(reverse(cdr(reverse p)))p)
)


(setq e(car(entsel"选择闭合多线段")))
(alert(if (Pldir(plinexy e))"逆时针""顺时针")

自贡黄明儒 发表于 2015-4-17 12:42:03

;;182 [功能] 曲线方向判断
(defun Curve:Direction (curve / box params)
(setq        box    (_pnts:box (Entity:Box curve))
        params (mapcar
               '(lambda (x)
                  (vlax-curve-getParamAtPoint
                      curve
                      (vlax-curve-getClosestPointTo curve x)
                  )
                  )
               box
             )
)
(or
    (apply '<= params)
    (<= (cadr lst) (caddr params) (cadddr params) (car params))
    (<=        (caddr params)
        (cadddr params)
        (car params)
        (cadr params)
    )
    (<=        (cadddr params)
        (car params)
        (cadr params)
        (caddr params)
    )
)
)

Gu_xl 发表于 2015-4-17 13:27:08

(XLRX-ClockWiseP Curve)

AbnerXk 发表于 2015-4-17 13:52:58

南林浣风 发表于 2015-4-19 21:11:40

434939575 发表于 2015-4-16 21:21 static/image/common/back.gif
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=85286&highlight=%C4%E6%CA%B1%D5%EB

哥们,这个程序有问题啊,运行不了,能不能帮我改改
页: [1] 2
查看完整版本: lisp中怎样判断绘制的多段线是顺时针还是逆时针绘制的