在比例地图上定位位置

Position Locations on a Scaled Map

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

我在这些浮点值之间有很多坐标,我想将它们定位在地图上以供查看。

游戏地图本身实际上只有 185 宽和 74 宽,但我已将地图缩放到 1024 宽和 786 高以获得更好的可见性。

我该如何正确绘制此地图上的点,例如 -52.6、12.55 的 Java JFrame,其中左上角被视为 0,0?比如,我如何缩放它才能在放大后的地图中找到合适的位置来绘制地点?

我认为您的新高度 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

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