明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: hn10183051

[提问] 求【高飞鸟】大师与各位大神帮忙解答一个数学题,求2个面相交的真实角度。

[复制链接]
 楼主| 发表于 2025-3-24 20:15:19 | 显示全部楼层
还得院长出马
回复 支持 反对

使用道具 举报

发表于 2025-3-26 09:44:22 | 显示全部楼层

你那个二面角C=132°是个冗余条件,由前面三个条件算出结果再算二面角,约为138度。

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

发表于 2025-4-11 21:31:14 | 显示全部楼层
夏生生 发表于 2025-3-21 17:14
如果知道面上的点可以用下面的方法

求出交线算角就不用写了

朋友,我用这个文件中的红色线和蓝色线上的三个点(p1点为第一个点),用你的代码计算二面角和相交线,发觉算出的两个点重合了,没研究你的代码,麻烦纠正下,谢谢!

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

发表于 7 天前 | 显示全部楼层
本帖最后由 夏生生 于 2025-4-14 15:16 编辑
guosheyang 发表于 2025-4-11 21:31
朋友,我用这个文件中的红色线和蓝色线上的三个点(p1点为第一个点),用你的代码计算二面角和相交线,发 ...

修改了一下,逻辑有点不完整,没有判断pt是否与pt1重合,这里距离实际无所谓
  1. ;;;=============================================
  2. ;;;      通用函数  两个面夹角及交线
  3. ;;;参数: pt1/2/3------面1上三点
  4. ;;;       pt4/5/6------面2上三点
  5. ;;;返回值:两个面夹角及交线上两点
  6. ;;;根据点法式平面方程硬算
  7. ;;;MAT相关函数来自highflybir;;;<a href="http://bbs.mjtd.com/forum.php?mod=viewthread&tid=99926&extra=page%3D2%26filter%3Dtypeid%26typeid%3D108" target="_blank">http://bbs.mjtd.com/forum.php?mo ... peid%26typeid%3D108</a>
  8. ;;;xty-acos为反余弦函数,自己写一个就行
  9. (defun xty-g-angf&f  (pt1 pt2 pt3 pt4 pt5 pt6 /  abc def  ff g1 g2 g3 pt
  10.           u1 u2 v1 v2 w)   
  11. (setq v1  (mapcar (function -) pt1 pt2)
  12.     v2  (mapcar (function -) pt1 pt3)
  13.     abc (MAT:unit (MAT:vxv v1 v2))
  14.     v1  (mapcar (function -) pt4 pt5)
  15.     v2  (mapcar (function -) pt4 pt6)
  16.     def (MAT:unit (MAT:vxv v1 v2))
  17.     ff  (MAT:vxv abc def)
  18.     u1  (MAT:Dot abc pt1)
  19.     u2  (MAT:Dot def pt4)
  20.     g1  (- (* (caddr def) u1) (* (caddr abc) u2))
  21.     g2  (- (* (cadr def) u1) (* (cadr abc) u2))
  22.     g3  (- (* (car def) u1) (* (car abc) u2)))
  23.     (cond ((null (equal (setq w (car ff)) 0 1e-3))
  24.      (setq pt (list 0 (/ g1 w) (/ (- g2) w))))
  25.     ((null (equal (setq w (cadr ff)) 0 1e-3))
  26.      (setq pt (list (/ (- g1) w) 0 (/ g3 w))))
  27.     ((null (equal (setq w (caddr ff)) 0 1e-3))
  28.      (setq pt (list (/ g2 w) (/ (- g3) w) 0))))
  29. ;;;也可以输出(list (xty-acos (MAT:Dot abc def)) ff)ff为交线的单位向量
  30.     (list (xty-acos (MAT:Dot abc def))
  31.     pt
  32.     (mapcar (function +) pt (MAT:vxs ff (distance pt1 pt2)))))

回复 支持 反对

使用道具 举报

发表于 7 天前 | 显示全部楼层
另一种算法,三维旋转
  1. (defun tt  (ang1 ang2 ang3 / xty-g-3ptang a b c  mat1 mat2 mat3 pt0 pt1 pt12 pt2  pt22 pt3 pt4)
  2. (defun  xty-G-3ptang  (pt1 pto pt2 / a b c)
  3.   (setq  a   (MAT:v-v pto pt1)
  4.   b   (MAT:v-v pto pt2)
  5.   ang (xty-acos (/ (MAT:dot a b)
  6.        (* (MAT:norm a) (MAT:norm b))))))
  7. (setq ang1 (/ (* pi ang1) 180)
  8.        ang2 (/ (* pi (- 90 ang2)) 180)
  9.        ang3 (/ (* pi (- 90 ang3)) 180))
  10. (setq pt0  '(0 0 0)
  11.        pt1  '(1. 0 0)
  12.        pt2  '(0 0 1.)
  13.        mat1 (MAT:Rotation3D pt0 pt2 ang1)
  14.        pt3  (MAT:mxp mat1 pt1)
  15.        mat2 (MAT:Rotation3D pt0 pt1 (- ang2))
  16.        pt12 (MAT:mxp mat2 pt2)
  17.        mat3 (MAT:Rotation3D pt0 pt3 ang3)
  18.        pt22 (MAT:mxp mat3 pt2)
  19.        a    (xty-g-angf&f pt0 pt1 pt12 pt0 pt3 pt22)
  20.        pt4  (caddr a)
  21.        b    (xty-G-3ptang pt1 pt0 pt4)
  22.        c    (xty-G-3ptang pt3 pt0 pt4))
  23. (list (atof (angtos b 0 5)) (atof (angtos c 0 5))))
  24. ;;;(tt 60 20 35)=>(42.1044 23.566)

回复 支持 反对

使用道具 举报

发表于 7 天前 | 显示全部楼层
夏生生 发表于 2025-4-14 16:53
另一种算法,三维旋转

好的  感谢夏大佬的修改和回复!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-21 18:06 , Processed in 0.164769 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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