将三角形中的点映射到不同坐标系中的另一个三角形

问题描述 投票:0回答:1

enter image description here

我在两个不同的坐标系中都有两个三角形,其中xa1,ya1属于xb1,yb1等。因此,右侧的三角形对应于另一个系统中左侧的三角形。形状和位置完全是任意的,所以我唯一知道的是Point (xa1,ya1)对应于Point (xb1,yb1)(xa2,ya2)对应于(xb2,yb2)等。

第一个三角形位于我知道纬度和经度的地理坐标系中。第二个三角形的坐标系为0-100。

如何找到第二个三角形中的点x

  1. 我发现了this类似问题,但它不涉及不同的坐标系。可以通过“仿射变换”完成吗?另外,我想在javascript中实现此功能,我的数学知识有些局限,因此您可能需要使用(伪)代码示例进行解释。
  2. 这是一个10公里x 10公里的区域,所以我希望可以简化地理范围
  3. 如果无法准确确定,则尽可能地了解x就足够了。
javascript math geometry latitude-longitude affinetransform
1个回答
0
投票

This answer包含用于计算仿射变换的公式。

是否适合您的情况?取决于“不同的坐标系”的实际差异。

[也许您也可以尝试barycentric coordinates-在第一个系统中找到这些点的坐标,然后在第二个系统中使用顶点计算笛卡尔坐标。结果应该是相同的,因为重心坐标是仿射不变的。

当您需要变换很多点时,第一种方法更好。对于唯一的问题,您可以尝试第二种方法(不确定是否更快)。

© www.soinside.com 2019 - 2024. All rights reserved.