Math 两个三角形之间的相似变换

Math 两个三角形之间的相似变换,math,geometry,transformation,affinetransform,Math,Geometry,Transformation,Affinetransform,我有两个二维三角形(即,它们都位于平面内),并希望找到将其中一个最紧密地映射到另一个的相似性变换(旋转+缩放+平移) 这两个三角形实际上并不相似,所以我只希望变换尽可能使它们对齐 我知道我可以在两个三角形之间创建一个仿射变换,将一个三角形精确地映射到另一个三角形上,但我不希望仿射变换中存在剪切效果。我希望变换仅由平移、旋转和缩放组成 你知道如何做到这一点吗?定义相似性不是一件容易的事,但这里有一些想法你可以使用。假设要将三角形A(几乎)转换为三角形B 比例:按面积(B)/面积(A)缩放三角形A

我有两个二维三角形(即,它们都位于平面内),并希望找到将其中一个最紧密地映射到另一个的相似性变换(旋转+缩放+平移)

这两个三角形实际上并不相似,所以我只希望变换尽可能使它们对齐

我知道我可以在两个三角形之间创建一个仿射变换,将一个三角形精确地映射到另一个三角形上,但我不希望仿射变换中存在剪切效果。我希望变换仅由平移、旋转和缩放组成


你知道如何做到这一点吗?

定义相似性不是一件容易的事,但这里有一些想法你可以使用。假设要将三角形A(几乎)转换为三角形B

  • 比例:按面积(B)/面积(A)缩放三角形A
  • 变换:通过使两个三角形匹配的向量变换三角形
  • 旋转:使用优化方法为满足个人相似性标准的旋转选择范围
    [0360)
    中的值
旋转部分可能是最困难的。一个简单但有效的想法是从三个点开始应用,并取最佳值。三个点是将A的一个点放在B的每个点上所需的旋转量


相似性标准本身也不容易。我想到的一件事是变换后重叠曲面的数量。计算这一点并不容易,或者至少很麻烦。

首先,你需要定义“最接近”的含义,当然??我认为这是提出这个问题的正确位置。通过“最接近”我指的是任何可能的东西,变换一个三角形使它与另一个三角形几乎一致。我愿意接受关于“最接近”的合理(且计算起来相当简单)含义的建议这个问题是关于仿射映射的,这是我不想要的。最后,我使用了procrustes分析,它与你建议的类似,但有一个封闭形式的解决方案来找到最佳旋转