第二大陆 进化星球上面的长度单位是怎么回事?

denny · 发布于 2018年10月16日 · 最后由 1451716306 回复于 2018年10月30日 · 401 次阅读

进化星球上每个地块的大小是100米✖️100米,每个星球物品都可能有坐标,坐标和距离的单位可以有很多,例如

KM(千米),HM(百米), TM(十米),M(米), DM(分米),CM(厘米),MM(毫米),微米(μM、UM).

μM是系统和合约中表达的最小单位,类似比特币单位中的satoshi,或者以太坊单位中的wei.

1HM = 100 M = 10^8 μM

1MM = 10^3 μM

每个地块的中心点都对应于一个整数HM坐标,因此可以为每个地块分配一个HM位置坐标,对于Atalantis亚特兰蒂斯大陆来说,他们的坐标范围是X: [-112, -68] Y: [-22, 22]。 例如某个大陆他的HM坐标为(-112, -22),但这个大陆实际在合约内部存的值为UM坐标,(-11200000000, -2200000000),开发者开发的时候需要注意一下。

HM坐标为(-112, -22)的这个地块,所辖地域范围,目前默认约定为UM坐标 (X[-11250000000, -11150000000),Y[-2250000000, -2150000000))的这片区域。

巧合的是,如果将进化星球大陆映射成一个球面,那么他们的每个大陆形状就不完全是距离相等的,这个时候再用距离来表达他们的空间和长度就有一些局限,这个时候用角度来表示会更准确一点。

每个地块的HM坐标正好也对应于进化星球的经纬度,例如X(-112, -22)对应于 西经112度,南纬22度。 这个时候我们也给μM对应过来的最小的度数取一个名字叫1 fisher.

1 degree = 10^8 fisher。星球正好X经度为 360 degree, Y纬度为 180 degree, X(-112)和X(248)的经度是一样的。

代码参考: https://github.com/evolutionlandorg/common-contracts/blob/master/contracts/TokenLocation.sol#L30

共收到 2 条回复
denny 将本帖设为了精华贴 10月16日 17:02
denny 取消了精华贴 11月29日 17:33
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册