Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Language agnostic 寻找点之间的转换_Language Agnostic_Math_Translation_Coordinates - Fatal编程技术网

Language agnostic 寻找点之间的转换

Language agnostic 寻找点之间的转换,language-agnostic,math,translation,coordinates,Language Agnostic,Math,Translation,Coordinates,我有一张美国地图,在地图上有很多像素坐标,对应于感兴趣的地方。它们在运行时根据各种设置和统计信息在地图上动态绘制 我现在需要切换到另一张不同大小的美国地图,地图的左上角在海洋中稍有一点的地方 因此,我已经手动收集了一小部分地图的坐标,这些坐标彼此对应。例如,第一张地图上的点(244312)对应于第二张地图上的点(598624),第一张地图上的点(1323374)对应于第二张地图上的点(2793545),以此类推 所以我想确定X和Y维的平移。因此,给定新旧地图的一组点,我如何找到x'=a*x+C和

我有一张美国地图,在地图上有很多像素坐标,对应于感兴趣的地方。它们在运行时根据各种设置和统计信息在地图上动态绘制

我现在需要切换到另一张不同大小的美国地图,地图的左上角在海洋中稍有一点的地方

因此,我已经手动收集了一小部分地图的坐标,这些坐标彼此对应。例如,第一张地图上的点(244312)对应于第二张地图上的点(598624),第一张地图上的点(1323374)对应于第二张地图上的点(2793545),以此类推


所以我想确定X和Y维的平移。因此,给定新旧地图的一组点,我如何找到
x'=a*x+C
y'=B*x+D
方程来自动将任何点从旧地图转换为新地图?

两张地图上都有两个点的坐标,(x1,y1),(x'1,y'1),(x2,y2)和(x'2,y'2)

A=(x'1-x'2)/(x1-x2) B=(y'1-y'2)/(y1-y2) C=x'1-A x1 D=y'1-B y1
另外,你的方程意味着从一张地图到另一张地图的简单缩放/转换。如果你担心使用从地球到平面的不同投影,方程会更复杂。

你在两张地图上都有两个点的坐标,(x1,y1),(x'1,y'1),(x2,y2)和(x'2,y'2)

A=(x'1-x'2)/(x1-x2) B=(y'1-y'2)/(y1-y2) C=x'1-A x1 D=y'1-B y1
另外,你的方程意味着从一张地图到另一张地图的简单缩放/转换。如果您担心使用从地球到平面的不同投影,则方程将更加复杂。

要获得更稳健的结果,避免不准确,两点可能会有所帮助。 在这种情况下,如果假设只有平移和缩放最小二乘拟合可能有帮助:


基本上,您可以通过选择最佳的A、B、C、D来最小化总和((Axi+B-xi')^2+(Cyi+D-yi')^2)。

以获得更稳健的结果,防止不准确。两点以上可能会有所帮助。 在这种情况下,如果假设只有平移和缩放最小二乘拟合可能有帮助:


基本上,您可以通过选择最佳的A、B、C、D来最小化总和((Axi+B-xi')^2+(Cyi+D-yi')^2)。

所有2D贴图都必须扭曲土地,并且有无数微妙的方式来执行此扭曲。你知道两个贴图使用相同的失真吗?也就是说,除了大小和位置之外,这些地图是相同的吗?我想到了这一点,我只是不知道。我不确定如果扭曲程度大不相同,我能做些什么,除了手动重新绘制我感兴趣的所有地方的坐标。所有2D地图都必须扭曲土地,有无数微妙的方式来执行这种扭曲。你知道两个贴图使用相同的失真吗?也就是说,除了大小和位置之外,这些地图是相同的吗?我想到了这一点,我只是不知道。我不确定如果扭曲程度大不相同,除了手动重新映射我所有位置的坐标之外,我还能做些什么。 A = (x'1 - x'2)/(x1 - x2) B = (y'1 - y'2)/(y1 - y2) C = x'1 - A x1 D = y'1 - B y1