大航海mod吧 关注:3,714贴子:26,114
  • 11回复贴,共1

地图坐标换算的一点小事

只看楼主收藏回复

这个坐标系统整体而言并不复杂,是一个线性变化的系统。
不过因为“40000*20000”坐标系统(开局设定中)、“2500*1250”坐标系统(地图编辑中)和常用的经纬系统在数值上没有统一,可能给一些朋友带来了困扰,稍作说明。


IP属地:北京1楼2020-07-05 15:00回复
    首先来说地图编辑器。
    下面的【2500x1250】系统坐标“2499,1249”。(由于是从0开始的,这里便是最大值了,也就是地图的右下角)
    再根据右边的“16x16”,横纵分别乘16便得到在【40000x20000】系统中的坐标。但是由于这种放缩方式的局限性,这个位置对应的其实就是【40000x20000】系统中16x16的小方格的左上角,即(39984,19984)。
    地图编辑器里编辑的单位便是这样的小方格,更换方格内的材质(例如开运河)也是根据这个16x16的小方格来做的,而1:16、1:8等顾名思义是显示的比例尺。


    IP属地:北京来自Android客户端2楼2020-07-05 15:06
    回复
      2025-05-13 02:04:32
      广告
      接下来说开局设定,这也不难理解。
      【40000x20000】系统中(0,0)对应的是“左上角”,也就是西经180度,北纬90度。这里为什么说西经呢,很显然是因为地图展开的方式。前对应经度(x),后对应纬度(y),那么我们计算x/40000*360,y/20000*180,再把这两个值分别同180与90相减,判定其应当属于东西经、南北纬,就可以了。
      挺小学生的是吧。


      IP属地:北京来自Android客户端3楼2020-07-05 15:14
      回复
        最后讲【40000x20000】到【2500x1250的换算】,整除16,得到对应的方格。注意不是四舍五入是保留整数。用系统自带计算器的程序员模式就知道了,当然保留整数这个应该也不会有人不会吧
        除下来难免损失一点精度,不过既然地图编辑器的一格就是16x16,如果用地图编辑器来做,那么也就这样了。


        IP属地:北京来自Android客户端4楼2020-07-05 15:22
        回复
          当然,开局设定工具换算成经纬度其实是做的四舍五入。


          IP属地:北京来自Android客户端5楼2020-07-05 15:23
          回复
            接下来再看world%d. dat文件中的数据组织格式。
            这样相连的两个字节,我们把它叫作一单位(不可拆分)。
            横向2500个单位,也就是从【2500x1250】系统的(0(经),0(纬))即(180W,90N)开始,顺次排列到(2499(经),0(纬))即(180W,90N)。改动(2499,0)变化的数据偏移量是1386h和1387h,也就是十进制的4998和4999。
            接下来的偏移量1388h和1389h则对应到(0(经),1(纬)),再依次排列到(2499,1)结束。由此,一直到(0,1249)至(2499,1249)这组数据结束。
            知道这一点之后,不用所谓“地图编辑器”,直接用“十六进制编辑工具”也可以简单地对地图进行编辑了。
            再注意到这张图,色块的代码范围是0~1023,共1024个色块,用十六进制换算之后便是【单位】中应该填入的数码。不过由于高低位的原因,填入时稍作变化,叙述起来略麻烦,举例就清楚了:
            十进制15—十六进制F—000F—填入0F00
            十进制1023—十六进制3FF—03FF—填入FF03



            IP属地:北京来自Android客户端6楼2020-07-05 15:54
            回复
              当然要根据偏移量确定坐标也是不难的,小学生表示那就是偏移量(偶数)÷5000=y……2x,就不细讲了


              IP属地:北京来自Android客户端7楼2020-07-05 15:59
              回复
                所以,地图编辑器实际上是在改写代码,而不是看上去那样在点击图片。而mod相比原威力加强版真正的画质提升是通过提升海面材质对应【图片】文件的画质来实现的,而这些【数据】的结构、原理本质上则没有改变。当然,如果你开了运河,当然会对比发现数据文件也不一样了,这又是另一回事了。


                IP属地:北京来自Android客户端8楼2020-07-05 16:03
                回复
                  2025-05-13 01:58:32
                  广告
                  比较常用的两个操作,看有人不知道,顺带一提吧



                  IP属地:北京来自Android客户端9楼2020-07-05 16:08
                  回复
                    这个问题不大。


                    IP属地:福建10楼2020-07-05 19:21
                    收起回复
                      厚着脸皮给自己加个精


                      IP属地:北京来自Android客户端11楼2020-07-18 16:09
                      回复