乐筑天下

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

[编程交流] 我如何判断是否有3分

[复制链接]

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-5 18:47:53 | 显示全部楼层 |阅读模式
你好
 
我怎么知道三个点是否形成一个角?给它一些宽容怎么样?如果温度不超过80-100度,它仍然是一个角?
 
 
 
谢谢
谢伊
回复

使用道具 举报

35

主题

140

帖子

108

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
177
发表于 2022-7-5 19:01:05 | 显示全部楼层
你能澄清一下吗?
回复

使用道具 举报

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-5 19:05:31 | 显示全部楼层
假设我有一个包含这3个点的列表,我希望它告诉我它们是否形成90度角,如果仍然在80度到100度之间,就可以了。。我也会把它当成一个rorner:P:P
194755l7teqs5825o57qh2.jpg
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 19:19:51 | 显示全部楼层
有很多方法可以完成这项任务,这里有一种:
这是另一个:
  1. (defun corner-p ( p1 p2 p3 )
  2.    (equal 0.0 (cos (- (angle p2 p1) (angle p2 p3))) 1e-
  3. )
和另一个:
  1. (defun corner-p ( p1 p2 p3 )
  2.    ((lambda ( v ) (equal (caddr (trans p2 0 v)) (caddr (trans p3 0 v)) 1e-) (mapcar '- p1 p2))
  3. )
回复

使用道具 举报

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-5 19:28:32 | 显示全部楼层
 
谢谢李
 
1-e8是我害怕的东西。。。。我假设(等于b 1-e8)是我要求的公差,但我如何将其转换为度范围(也称为限制80到100度)?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 19:38:03 | 显示全部楼层
 
不客气。
 
 
1e-8(0.0000000 1)确实是用于每次比较的公差,但是,该公差将根据所用方法代表不同的量。
 
例如,第一种方法使用两个向量的向量点积,因此公差将是两个向量的长度和它们之间角度的余弦的因子(因为a·b=|a | | b | cosθ);第二种方法中使用的公差也是两个矢量之间角度的余弦因子(但不取决于矢量长度);最后,在第三种方法中,公差表示点p2和点p3投影到线p1-p2之间的线性距离。
回复

使用道具 举报

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-5 19:41:32 | 显示全部楼层
 
首先,我想说我爱李!!!
如果我来伦敦,我一定会见到你(如果你愿意的话)
 
第二继续有趣的关系比率。。。。我仍然无法将其简化为一个参数,即。。。
 
  1. (if (and
  2.    (the following 3 points form a corner) (
  3.    (the corner not exceed minimum of 80 degrees)
  4.    (the corner not exceed maximum of 100 degrees)
  5.      )
  6.    
  7.     (princ "the corner is ok")
  8.     (princ "cant accept that corner due to limit violation")
  9. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 19:49:14 | 显示全部楼层
你说得太好了。
 
由于余弦函数是周期性的,根在pi/2、3pi/2等处,因此足以测试向量之间角度的余弦是否在给定的根范围内,例如:
  1. (defun corner-p ( p1 p2 p3 tol )
  2.    (equal 0.0 (cos (- (angle p2 p1) (angle p2 p3))) (cos (+ (/ pi 2) tol)))
  3. )
10度:
  1. 5
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 13:13 , Processed in 0.517950 second(s), 70 queries .

© 2020-2025 乐筑天下

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