需要确定一个矩阵来对齐两个三角形
Need to determine a matrix to align two triangles
我需要确定一个矩阵,表示在3D中对齐两个已知的全等三角形所需的变换。我以前试过询问采取不同的方法,但我一直遇到很多障碍,所以我现在正在考虑尝试不同的想法。
是否有人能够指导我如何创建一个矩阵来表示将三角形(DEF
)移动到与另一个(ABC
)相同的位置和方向所需的平移和旋转,其中A
位于原点?
1。想想一个"基本"三角形。XYZ当X = (0,0,0), Y =(1,0,0)和Z在任何地方,取决于角度。
第二对于每个三角形,找到将其移动到"basic"的方法。
对于DEF 's,使用基本移动动作将D移动到A。绕z旋转,直到E在xz平面,绕x旋转,直到F在x+面,在xy平面。
如果清楚了,那么你就知道如何创建一个矩阵来将每个三角形移动到相同的基本三角形。
现在. .如果你取一个识别矩阵,对于你在矩阵右边(2)做的每一个动作,你将在识别矩阵的左边做相反的动作,你将最终得到一个矩阵,从基本三角形移动到你的三角形。
我想到的一个想法(这可能既不是最简单也不是最有效的方法)是从计算三角形的周长开始。然后,通过它们的唯一线可以用来构建平移矩阵,该矩阵可以让您将一个三角形拖到另一个三角形上(可能使它们相交)。
既然你有三角形,你也可以计算包含它们的各自平面的方程,这些平面之间的角度,以及你需要应用的旋转矩阵,以便两个三角形最终在同一个平面上。最后,您需要应用最后一个旋转来匹配现在位于同一平面上的三角形。
相关文章:
- 为什么C++在将一个对象复制到另一个对象时需要对这两个对象进行低级常量限定
- 运行时错误:引用绑定到类型"int"的未对齐地址0xbebebebebebebec6,这需要 4 个字节对齐 (stl_vector.h)
- 简化对两个布尔值的 4 个 if/else 检查
- 如何在C++中从两个向量生成所有可能的对?
- 程序没有问 3 个问题,而是将我对第一个问题的回答用于其他两个问题
- 如何对两个 4 位数字进行乘法,将它们视为 C++ 中的多项式
- 为什么在我的实现中,所有数组都对齐到 16 个字节?
- 如何实现对参数顺序不可知的std::same_as的广义形式(即对于两个以上的类型参数)
- 如何获得比较两个向量对的子集
- 如何同时对两个或三个数组进行排序?
- gcc 中的多个对齐属性是否可以用于保证缓存行分隔?
- 将使用 4 或 8 个对齐规则将加载处理到内存中
- 有没有办法将来自不同语言的这两个值对齐?
- C 我将如何使用排序对这两个维数组进行排序
- 对这两个分配运营商之间的不同感到困惑
- 对由两个点组成的线段进行排序
- 根据其标记点对齐2个面部图像
- 如何在不使用两个标签的情况下对齐左侧的一些文本和右侧的一些文本
- 需要确定一个矩阵来对齐两个三角形
- 如何对具有两个变量的向量进行排序