求一个地图的换算思路

查看 32|回复 3
作者:xiaoheimeng   
视窗大小为1280X960 通过截图ps合成的地图为1792X1088, 跑到视窗的左上角,从0,0的位置开始到点A的坐标为(1219,481),跑到视窗的右下角,从0,0的位置开始到点A的坐标为(707,352)。
怎样计算在已知合成的地图上任意一点的坐标,得到视窗上的坐标。

坐标, 视窗

雷欧库珀   

你数据绝对有问题
1219+707》1792
goodname521   

要将合成地图上的任意一点坐标转换为视窗上的坐标,首先需要了解两个坐标系统之间的关系。根据您提供的信息,我们可以通过以下步骤进行坐标转换。
1. 确定比例
从您提供的两个点坐标(点 A 在视窗中的坐标和合成地图中的坐标),我们可以计算出在两者之间的比例。
  • 合成地图的大小:1792 x 1088
  • 视窗大小:1280 x 960

    2. 计算比例系数
    根据您提供的坐标点 A 的信息:
  • 从视窗左上角(0, 0)到点 A 在合成地图的坐标是 (1219, 481)。
  • 从视窗右下角(0, 0)到点 A 在合成地图的坐标是 (707, 352)。

    我们可以使用这些信息来构建一个简单的线性映射。
    3. 计算坐标转换公式
    首先,您需要根据左上角和右下角的坐标来建立一个转换公式。我们可以使用下面的方法:
    [ol]

  • X坐标的比例
  • 从合成地图到视窗的 X 坐标比例:
    [
    x{\text{viewport}} = \frac{x{\text{map}}}{\text{map_width}} \times \text{viewport_width}
    ]

  • Y坐标的比例
  • 从合成地图到视窗的 Y 坐标比例:
    [
    y{\text{viewport}} = \frac{y{\text{map}}}{\text{map_height}} \times \text{viewport_height}
    ]

    [/ol]
    4. 使用具体的值
    将具体的值代入公式:
  • 合成地图宽度(map_width):1792
  • 合成地图高度(map_height):1088
  • 视窗宽度(viewport_width):1280
  • 视窗高度(viewport_height):960

    5. 完整的坐标转换公式
    将合成地图上的任意点 (x_map, y_map) 转换为视窗坐标 (x_viewport, y_viewport):
    [
    x{\text{viewport}} = \frac{x{\text{map}}}{1792} \times 1280
    ]
    [
    y{\text{viewport}} = \frac{y{\text{map}}}{1088} \times 960
    ]
    6. 示例
    如果您有一个合成地图上点的坐标 (300, 400),您可以按以下计算:
    [
    x{\text{viewport}} = \frac{300}{1792} \times 1280 \approx 213.83
    ]
    [
    y{\text{viewport}} = \frac{400}{1088} \times 960 \approx 352.27
    ]
    7. 实际应用
    根据上面的方法,您可以将合成地图上任意点的坐标转换为视窗上的坐标。只需将合成地图的坐标代入公式即可。
  • ysgl   

    已知条件
    1.视窗大小:1280×960(宽×高)
    2.合成地图大小:1792×1088(宽×高)
    3.地图上坐标为点 A:
      左上角对应点 A:坐标为 (1219, 481)
      右下角对应点 A:坐标为 (707, 352)
    [i]
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部