两个(x,y)图的线性关系

时间:2009-07-22 13:02:57

标签: math graph coordinates relationships linear

我有来自[coordinates1]数据库的x,y数据(GIS - 但这可能是任何数据库)。我的应用程序有自己的坐标系,参考相同的地图。

我已经确定了坐标1(x,y)和坐标2(x,y)之间存在线性关系,因为我已经减去了两个不同的坐标1和坐标2 [将x1与x2和y1除以y2]并且在所有情况下我都得到了它们分别显示0.724或0.141或0.825,即coordinates1 + coordinates2。

我现在需要弄清楚 - 或者你帮忙 - 如果坐标1(100000,200000)和坐标2(0.125,0.255)我如何从coordinates1(x,y)中的数据计算坐标2(x,y) )?

2 个答案:

答案 0 :(得分:4)

为了清楚起见,我打算在你的基地调用坐标( x n y n < / i>),以及目标中的坐标( u n v n )。

现在,如果我们假设:

  1. 两个坐标系的起源是相同的。
  2. 两个坐标系的方向相同(即一个不相对于另一个坐标系旋转)。
  3. 在这种情况下,您只需要一组点{( x 1 y 1 ), ( 1 v 1 )}来确定( u n的位置 v n ):

    • u n = u 1 / x 1 < / i> * x n
    • v n = v 1 / y 1 < / i> * y n

    注意:我们必须 x 1 ≠0, y 1 ≠0


    另一方面,如果两个坐标系具有不同的原点(但它们仍未相对于彼此旋转),我们将需要两组点{( x 1 y 1 ),( u 1 v 1 )}和{( x 2 y 2 ),(< i>你 2 v 2 )}:

    • u n =( u 2 - u 1 )/( x 2 - x 1 )*( x n - x 1 )+ u 1
    • v n =( v 2 - v 1 )/( y 2 - y 1 )*( y n - y 1 )+ v 1

    注意:我们必须有 x 1 x 2 y 1 y 2


    现在,如果两个坐标系相对于彼此旋转,则需要(我相信)另一组匹配坐标。但它听起来并不像你需要那样(除非你的一张地图指向北方而不是直线向上),所以我现在不打算算数。 :)

答案 1 :(得分:2)

要进行转换,您需要知道两个坐标系中一个点O的坐标。

假设O坐标系1中的坐标为x1O,y1O,坐标系2中的坐标为x2O,y2O

然后系统1中坐标为x1,y1的点和系统2中的x2,y2将满足:

(x1O - x1) = Kx * (x2O - x2)
(y1O - y1) = Ky * (y2O - y2)

其中KxKy是比例因子。如果你知道两个系统中另一个点M的坐标,那么你将KxKy

Kx = (x1O - x1M) / (x2O - x2M)
Ky = (y1O - y1M) / (y2O - y2M)

然后,您只需要将第一个关系应用于从一个系统到另一个系统,并使用

x1 = x1O - Kx * (x2O - x2)
y1 = y10 - Ky * (y2O - y2)

x2 = x2O - (x1O - x1) / Kx
y2 = y2O - (y1O - y1) / Ky

您还需要代码吗?