乐筑天下

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

[编程交流] 获取两点之间的角度

[复制链接]

3

主题

8

帖子

5

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 07:45:50 | 显示全部楼层 |阅读模式
在四处搜索后,我终于找到了以下代码来查找两点之间的角度:
 
  1. (setq p1 (getpoint "\nSelect First Point: "))
  2. (setq p2 (getpoint "\nSelect Second Point: "))
  3. (setq ang1 (angle p1 p2))

 
然而,当我通过priting ang1或为文本添加以下代码行来测试这一点时,
  1. (command "_text" "_J" "_tc" "_non" p1 6.0 ang1 "testing angle")

 
角度似乎只有从。5到2.0左右,并且永远不会与p1和p2角度(可能48或89度)的预期相匹配。
它抓取的角度是不是以其他形式,我需要转换它?
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:02:46 | 显示全部楼层
请注意,角度函数以弧度为单位返回角度,而该命令以度为单位。
回复

使用道具 举报

3

主题

8

帖子

5

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 08:03:50 | 显示全部楼层
就这样,谢谢!!!
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:18:49 | 显示全部楼层
很高兴听到你的问题解决了。
由于从现在起您将多次遇到这种情况,我强烈建议您定义一对用于弧度到度的专用函数,分别用于度到弧度的转换。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 08:22:53 | 显示全部楼层
这是您想要的两个rtd dtr,您还需要记住,虽然答案始终是弧度,但它也忽略了单位方向设置,因此0始终是水平向右的,因此有时需要额外考虑0处的北brg。
 
  1. ;The dtr function converts degrees to radians
  2. ;The rtd function converts radians to degrees
  3. (defun dtr (a)
  4. (* pi (/ a 180.0))
  5. )
  6. ;
  7. (defun rtd (a)
  8. (/ (* a 180.0) pi)
  9. )
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 08:31:17 | 显示全部楼层
基于Mircea和Bigal的建议和答案。
 
  1. (command "_.text" "_J" "_tc" "_non" p1 6.0 (/ (* ang1 180.0) pi) "testing angle")
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 08:41:25 | 显示全部楼层
使用命令方法时需要考虑的因素
当前UCS
  1. (setq p1 (getpoint "\nSelect First Point: "))
  2. (setq p2 (getpoint [b][color=blue]p1[/color][/b] "\nSelect Second Point: "))
  3. (setq ang1 (angle [b][color=blue](trans p1 1 0)[/color][/b]
  4.                  [color=blue][b](trans p2 1 0)[/b][/color]))

 
当前文本
如果在当前TEXTSYLE上定义了Textstyle高度,则将获得字符串的角度值,而不是“测试角度”,并将6.0作为角度
 
HTH公司
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:47:23 | 显示全部楼层
这是一个很好的观点,pBe;可能的解决方法:
  1. (command "_TEXT" textPoint)
  2. (if (= (cdr (assoc 40 (entget (tblobjname "STYLE" (getvar "TEXTSTYLE"))))) 0.0)
  3. (command textHeight)
  4. )
  5. (command textAngle textLabel)
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 21:31 , Processed in 0.901499 second(s), 68 queries .

© 2020-2025 乐筑天下

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