明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 630|回复: 8

[源码] 3点(两个角度方位)获取角度差(夹角)

[复制链接]
发表于 2024-6-24 07:50:02 | 显示全部楼层 |阅读模式
本帖最后由 fangmin723 于 2024-6-24 11:35 编辑

3点(两个角度方位)获取角度差(夹角)
顾名思义,通过拾取的3个点或者两个角度,来获取角度差【0,2π】或夹角【0,π】
  1. ;;;3点(两角度方位)获取角度差(夹角) by 702099480@qq.com 2024.6.21
  2. (defun C:TT()
  3.         (progn
  4.                 ;;说明:两个角度方位的角度差
  5.                 ;;参数:ang1:角度方位1
  6.                 ;;参数:ang2:角度方位2
  7.                 ;;返回:角度差
  8.                 (defun GetAng(ang1 ang2)
  9.                         (if (< ang2 ang1)
  10.                                 (setq ang (+ ang2 (- (* pi 2) ang1)))
  11.                                 (setq ang (- ang2 ang1))
  12.                         )
  13.                 )
  14.                
  15.                 ;;说明:获取点1、点2位于角点的角度差
  16.                 ;;参数:pt1:点1
  17.                 ;;参数:angpt:角点
  18.                 ;;参数:pt2:点2
  19.                 ;;返回:角度差[0,2PI]
  20.                 (defun Get3PtAng(pt1 angpt pt2)
  21.                         (setq ang1 (angle angpt pt1) ang2 (angle angpt pt2))
  22.                         (GetAng ang1 ang2)
  23.                 )
  24.                
  25.                 ;;说明:两个角度方位的夹角
  26.                 ;;参数:ang1:角度方位1
  27.                 ;;参数:ang2:角度方位2
  28.                 ;;返回:夹角
  29.                 (defun GetSpaceAng(ang1 ang2)
  30.                         (setq ang (GetAng ang1 ang2))
  31.                         (if (> ang pi) (- (* pi 2) ang) ang)
  32.                 )
  33.                
  34.                 ;;说明:获取点1、点2位于角点的夹角
  35.                 ;;参数:pt1:点1
  36.                 ;;参数:angpt:角点
  37.                 ;;参数:pt2:点2
  38.                 ;;返回:夹角[0,PI]
  39.                 (defun Get3PtSpaceAng(pt1 angpt pt2)
  40.                         (setq ang1 (angle angpt pt1) ang2 (angle angpt pt2))
  41.                         (getspaceang ang1 ang2)
  42.                 )
  43.                
  44.                 ;;说明:弧度转角度
  45.                 ;;参数:ang:弧度值
  46.                 ;;返回:角度值
  47.                 (defun ToDeg(ang) (* 180.0 (/ ang pi)))
  48.                
  49.                 ;;说明:角度转弧度
  50.                 ;;参数:ang:角度值
  51.                 ;;返回:弧度值
  52.                 (defun ToRad(ang) (* pi (/ ang 180.0)))
  53.         )
  54.         
  55.         (and
  56.                 (setq startpoint (getpoint "\n拾取起始点"))
  57.                 (setq angpoint (getpoint startpoint  "\n拾取角点"))
  58.                 (setq endpoint (getpoint angpoint  "\n拾取终止点"))
  59.                 (princ
  60.                         (strcat
  61.                                 "\n角度差:"
  62.                                 (rtos (ToDeg (Get3PtAng startpoint angpoint endpoint)) 2 2)
  63.                                 "°\n夹 角:"
  64.                                 (rtos (ToDeg (Get3PtSpaceAng startpoint angpoint endpoint)) 2 2)
  65.                                 "°"
  66.                         )
  67.                 )
  68.         )
  69.         (prin1)
  70. )


角度差可能与夹角相等,具体看起始点(起始方位角)或结束点(终止方位角)相对方位
如下图所示:

注意:文件内代码与上面给出代码相同

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 1明经币 +1 收起 理由
hubeiwdlue + 1 很给力!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2024-6-24 08:12:17 | 显示全部楼层
本帖最后由 fangmin723 于 2024-6-24 08:14 编辑

大佬们用爱发电,有人却去收电费
发表于 2024-6-24 09:20:16 | 显示全部楼层
大佬们用爱发电,有人却去收电费。
我就点赞
发表于 2024-6-24 09:57:59 | 显示全部楼层
暂时用不到,大佬的作品点赞支持下
发表于 2024-6-24 10:23:35 | 显示全部楼层
暂时用不到,大佬的作品丰富,助我良多,特来支持!
发表于 2024-6-24 11:36:01 | 显示全部楼层
暂时用不到,大佬的作品丰富,助我良多,特来支持支持!
发表于 2024-6-24 19:50:06 | 显示全部楼层
感谢大佬的分享!
发表于 2024-6-24 21:24:34 | 显示全部楼层

暂时用不到,大佬的作品丰富,助我良多,特来支持!
发表于 2024-7-11 14:02:51 | 显示全部楼层
不错的资料,存一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-29 02:54 , Processed in 0.168816 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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