在缩放地图上定位位置

时间:2017-01-27 13:00:13

标签: java math position coordinates scale

我有来自地图的数据,其中以下位置被视为地图的边界。

  • 左上角被认为是(92,49)
  • 左下角(-93,49)
  • 右上角(92,-25),
  • 右下角(-93,-25)

我在浮动的那些值之间有很多坐标,我想把它们放在地图上查看。

游戏地图本身实际上只有185个横跨,长度为74,但我将地图缩放到1024横跨和786高度以获得更好的可见度。

如何在Java JFrame中正确绘制一个点,例如-52.6,12.55,其中左上角被认为是0,0?比如,如何缩放它以在放大的地图中获得正确的位置来绘制斑点?

1 个答案:

答案 0 :(得分:1)

我认为你的新高度786是一个错字,应该是768,旧地图角落的坐标很可能被错误标记。

您需要创建一个映射函数。

mappedX = (x - oldTopX) * (newWidth / oldWidth);
mappedY = (oldTopY - y) * (newHeight / oldHeight);

因此,对于x坐标为-52.6,新映射的x点为(-52.6 - -93)*(1024/185),等于223.6

新映射的y值为(49 - 12.55)/(786/74)= 387.2

维基百科有一个很好的二维计算机图形页面,涵盖了您所寻找的内容:https://en.wikipedia.org/wiki/2D_computer_graphics

相关问题