天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 63|回复: 0

[函数] 利用向量判断点表的排列方向 顺时针 逆时针

[复制链接]
  • TA的每日心情
    开心
    4 天前
  • 签到天数: 49 天

    [LV.5]常住居民I

    185

    主题

    150

    回帖

    1695

    积分

    管理员

    积分
    1695
    发表于 2024-4-4 08:36:48 | 显示全部楼层 |阅读模式
    1. ;获取点表的排列方向,1顺时针,-1逆时针,0共线
    2. (defun JudPtsClock (pts / i n pt1 pt2 sum)
    3.   (setq sum 0)
    4.   (setq i 0)
    5.   (repeat (setq n (length pts))
    6.     (setq pt1 (nth i pts))
    7.     (setq pt2 (nth (rem (1+ i) n) pts));rem 在这里的作用是为了确保索引不会超出点列表 pts 的范围,特别是当 i 等于 n-1 并递增后达到 n 时,通过取余可以让索引回绕到列表的第一个元素,从而形成一个循环遍历列表中的每个相邻点对
    8.     (setq sum (+ sum (- (* (car pt2) (cadr pt1)) (* (car pt1) (cadr pt2)))));叉积之和判断正负
    9.     (setq i (1+ i))
    10.   )
    11.   (cond
    12.     ((> sum 0) 1)
    13.     ((< sum 0) -1)
    14.     ((= sum 0) 0)
    15.   )
    16. )
    复制代码

     

     

     

     

    [函数] 利用向量判断点表的排列方向 顺时针 逆时针
    哎...膜结构车棚,签到来了1...
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|中国膜结构网_中国空间膜结构协会

    GMT+8, 2024-5-15 12:04 , Processed in 0.058036 second(s), 21 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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