乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 28|回复: 4

[编程交流] 弧小于180度

[复制链接]

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 07:27:08 | 显示全部楼层 |阅读模式
这比我想象的要复杂
 
已知数据:
[列表]
  • 弧中心点
  • 弧“p1”p2的起点和终点
  • 因此弧的半径(距离cen p1)'ra
  • 圆弧夹角始终小于180度
    [/列表]
     
    1. (entmake
    2. (list
    3.    (cons 0 "ARC")
    4.    (cons 10 cen)
    5.    (cons 40 ra)
    6.    (cons 50 (angle cen p1_or_p2))
    7.    (cons 51 (angle cen p2_or_p1))))

     
    我尝试了各种测试,但似乎没有任何东西能正常工作。
     
    有什么想法吗?TIA-David
  • 回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-6 07:47:51 | 显示全部楼层
    1. (if (< pi (LM:IncludedAngle cen p1 p2))
    2.    (setq tmp p1 p1 p2 p2 tmp)
    3. )
    4. (entmake
    5.    (list
    6.       '(0 . "ARC")
    7.        (cons 10 cen)
    8.        (cons 40 (distance cen p1))
    9.        (cons 50 (angle cen p1))
    10.        (cons 51 (angle cen p2))
    11.    )
    12. )
    13. ;; Included Angle  -  Lee Mac
    14. ;; Returns the included angle of an arc
    15. ;; with center cen and start & end points p1,p2
    16. (defun LM:IncludedAngle ( cen p1 p2 )
    17.    (rem (+ pi pi (- (angle cen p2) (angle cen p1))) (+ pi pi))
    18. )
    回复

    使用道具 举报

    0

    主题

    375

    帖子

    385

    银币

    限制会员

    铜币
    -7
    发表于 2022-7-6 08:10:28 | 显示全部楼层
    假设WCS和2D点(因为在entmake中未使用trans和210标志-法向量)
    1. (defun arc3p (c p1 p2 / r a1 a2 rev)
    2. (setq r   (distance c p1)
    3.        a1  (angle c p1)
    4.        a2  (angle c p2)
    5.        rev ((lambda (a1 a2 / u)
    6.               (if (minusp (setq u (- a2 a1)))
    7.                 (setq u (+ u (* 2 pi)))
    8.               )
    9.               (= u (rem u pi))
    10.             )
    11.              a1
    12.              a2
    13.            )
    14. )
    15. (entmake
    16.    (list
    17.      '(0 . "ARC")
    18.      (cons 10 c)
    19.      (cons 40 r)
    20.      (cons 50 (if rev a1 a2))
    21.      (cons 51 (if rev a2 a1))
    22.    )
    23. )
    24. )
    回复

    使用道具 举报

    26

    主题

    1495

    帖子

    20

    银币

    初露锋芒

    Rank: 3Rank: 3Rank: 3

    铜币
    118
    发表于 2022-7-6 08:20:06 | 显示全部楼层
    谢谢,两个都很好-大卫
    回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-6 08:31:28 | 显示全部楼层
    不客气,大卫
    回复

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    • 微信公众平台

    • 扫描访问手机版

    • 点击图片下载手机App

    QQ|关于我们|小黑屋|乐筑天下 繁体中文

    GMT+8, 2025-3-10 03:59 , Processed in 0.533964 second(s), 73 queries .

    © 2020-2025 乐筑天下

    联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表