如何解决找到两个同等三角形之间的旋转
| 我正在使用3D网格解析工具。目前,我正在尝试确定3D空间中两个同等三角形之间的旋转-我们将其称为ABC
和DEF
。
我能够将点A
和D
平移到相同的位置,现在需要确定将that1ѭ放置在与ABC
相同的平面和相同方向上的旋转,但是我对数学并不熟悉它。谁能告诉我该如何解决?
我一直在考虑使用AB
和DE
的叉积确定旋转轴,然后用点积确定角度,然后从中求出四元数。但我不知道这样是否总是可以使它们对齐。
我对上述想法误解了吗?它会一直对齐三角形吗?如果不会,找到轮换的替代方法是什么?
解决方法
您的第一部分将AB旋转到DE上的权利(或相反)。但这仅对齐一个边缘。要对齐其他两个,您仍然需要将C旋转到F上(第一次旋转之后)。只需使用建议的方法将三角形的两个面法线彼此旋转即可计算出必要的角度和轴(根据您的问题,我想您知道如何计算三角形的面法线)。
编辑:因此按顺序执行以下步骤:
将A转换为D
将AB旋转到DE上
通过将三角形的面法线彼此旋转将C旋转到F
您必须采用已经部分变形的三角形的面法线(在第2步之后),但是可能与原始三角形相同(不确定)。然后,您可以将这些转换串联在一起。
,平移ABC,以使A处的ABC曲面法线与基部的D点重合。
旋转ABC,以使A处的表面法线与D处的表面法线重合。
这是唯一棘手的部分。幸运的是,这是很常见的事情。等同于旋转3D相机方向。 Google找到了这个参考。
现在旋转以A为原点的三角形ABC,以使B和C与D和E重合。这是一个标准的2D旋转矩阵。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。