在做一个和地理相关的程序,有两种视角:地图视角和第一人称视角。
目前在大地图上都是记录经纬度坐标,比如[120.123456,21.1233456],类似现在的地图 APP 上标志。
转到第一人称下时,所有物品坐标都以当前视角为原点,依据其经纬度重新计算位置,这个目前也没有问题,隐约觉得哪里没考虑周全。
看了下一个叫 SpaceEngine 的免费游戏(真不是广告,这个游戏是完全免费的,不开源),玩家可以在宇宙中穿梭,又可以下潜到一个星球表面,这个坐标数值跨度得有 10 的几十次方了吧,然而进出太空还是挺平滑的。像这种程序,如果要求玩家可以降落到星球表面(整个世界完全是 1 : 1 的),人物在表面走路移动的逻辑又要怎么实现呢?因为靠太空坐标系这种精度肯定是完全没法做到细微移动的。或者在一个空间中,随机取一个点作为原点,建立局部坐标系?
再换个例子,像洲际导弹,军事 GPS 定位精确到米以下的。导弹飞行范围有半个地球, GPS 是整个地球,在三维空间坐标系统下面,这个空间原点怎么取呢?以地球中心为原点吗?如果这样取按目前 C 语言内置 double 类型应该不够处理(要做区域划分?)。
唔,现在思考的还比较粗略,表达也挺模糊,周末再仔细斟酌下...
另外...有哪些讨论涉及系统设计的文章或开源软件吗? 有个前人的思路就好,我怕摸黑走到坑里去··
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.