Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在比例地图上定位位置_Java_Math_Position_Coordinates_Scale - Fatal编程技术网

Java 在比例地图上定位位置

Java 在比例地图上定位位置,java,math,position,coordinates,scale,Java,Math,Position,Coordinates,Scale,我有一张地图上的数据,下面的位置被认为是地图的边界 考虑左上角(92,49) 左下角(-93,49) 右上角(92,-25) 右下角(-93,-25) 我有很多坐标,这些值是浮动的,我想把它们放在地图上查看 游戏地图本身实际上只有185米长,74米长,但为了更好的可见性,我已经将地图缩放到1024米宽,786米高 在JavaJFrame中,如果左上角被认为是0,0,我该如何正确地在地图上绘制一个点,例如-52.6,12.55?比如,我如何缩放它以在放大的地图中获得正确的位置来绘制该点?我认为

我有一张地图上的数据,下面的位置被认为是地图的边界

  • 考虑左上角(92,49)
  • 左下角(-93,49)
  • 右上角(92,-25)
  • 右下角(-93,-25)
我有很多坐标,这些值是浮动的,我想把它们放在地图上查看

游戏地图本身实际上只有185米长,74米长,但为了更好的可见性,我已经将地图缩放到1024米宽,786米高


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

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

您需要创建一个映射函数

mappedX = (x - oldTopX) * (newWidth / oldWidth);
mappedY = (oldTopY - y) * (newHeight / oldHeight);
对于-52.6的x坐标,新映射的x点是(-52.6--93)*(1024/185),等于223.6

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


Wikipedia有一个很好的2D计算机图形页面,它涵盖了您需要的内容:

这正是我需要的。非常感谢。