明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1256|回复: 8

[提问] 如何判定任意多边形线段是顺时针还是逆时针?

[复制链接]
发表于 2020-10-5 14:15:08 | 显示全部楼层 |阅读模式
如何判定任意多边形线段是顺时针还是逆时针?须要考虑各多边形为形状各异且各个多边形之间靠的很近的复杂情况。谢谢了!
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2020-10-6 12:50:46 | 显示全部楼层
g版那个有偏移失败的瑕疵,这个保险
;;;---------------------- 高飞函数改造------------------------------;
;;;功能: 判断多边形的方向(为简单多边形,不自交的多边形);
;;;输入: 多边形顶点列表  Pts                           ;
;;;输出: 返回T则是顺时针,否则逆时针              ;
;;;(POLY:clockwise pts)
(defun POLY:clockwise (Pts / MAT:Det2V)
        (defun MAT:Det2V (v1 v2)
                (-         (* (car v1) (cadr v2))
                    (* (car v2) (cadr v1))
                )
        )
        (< (* (apply '+
                       (mapcar 'MAT:Det2V pts
                               (append (cdr Pts) (list (car Pts)))
                            )
                   ) 0.5
                 ) 0.0
        )
)
参数是点集
回复 支持 1 反对 0

使用道具 举报

发表于 2020-10-5 14:19:21 | 显示全部楼层
去看G版的那个帖子
 楼主| 发表于 2020-10-5 15:10:08 | 显示全部楼层
谢谢!刚看到用鞋带公式求面积,以正负判断顺逆,试了一下似乎可以。
发表于 2020-10-7 09:47:33 来自手机 | 显示全部楼层
wzg356 发表于 2020-10-6 12:50
g版那个有偏移失败的瑕疵,这个保险
;;;---------------------- 高飞函数改造--------------------------- ...

这个是你自已写的吧。记得G版那个是包围盒角点往曲线投影,每三个点判断一下,有三个是顺时针的话,就是顺时针,适用于不相交曲线。
发表于 2020-10-7 10:10:08 | 显示全部楼层
自贡黄明儒 发表于 2020-10-7 09:47
这个是你自已写的吧。记得G版那个是包围盒角点往曲线投影,每三个点判断一下,有三个是顺时针的话,就是 ...

高飞有这个函数,我是把他的函数合并进去成型的,我也看不懂高飞那么高深的

多年没逛论坛了,不知G版又有新的了,还请包涵。以前确用过他一个偏移法判断的。
发表于 2020-10-7 10:18:56 来自手机 | 显示全部楼层
wzg356 发表于 2020-10-7 10:10
高飞有这个函数,我是把他的函数合并进去成型的,我也看不懂高飞那么高深的

多年没逛论坛了,不知G版 ...

查一下点积,叉积的几何意义,就能明白高大师函数了
发表于 2021-12-29 04:28:27 | 显示全部楼层
多边形线段是顺时针还是逆时针 可以用上线性代数里的向量叉积,,简单方便,,牛人啊,学习了
发表于 2022-1-31 13:59:44 | 显示全部楼层
非常好的代码,谢谢楼主分享。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-9-29 07:26 , Processed in 0.184413 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表