我有来自地图的数据,其中以下位置被视为地图的边界。
我在浮动的那些值之间有很多坐标,我想把它们放在地图上查看。
游戏地图本身实际上只有185个横跨,长度为74,但我将地图缩放到1024横跨和786高度以获得更好的可见度。
如何在Java JFrame中正确绘制一个点,例如-52.6,12.55,其中左上角被认为是0,0?比如,如何缩放它以在放大的地图中获得正确的位置来绘制斑点?
答案 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