大家好,我是我要吃煎蛋
今天给大家介绍一下我的世界里的数学知识。
曼哈顿距离不知道大家有没有听说过?
假设平面空间内存在两点,它们的坐标为(x1,y1),(x2,y2)
则dis=
x1x2
+
y1y2
两点横纵坐标差之和就是曼哈顿距离。
举个例子看图
A到C的曼哈顿距离为AB+BC=10+4=14
还有一种比较有意思的——切比雪夫距离
同样是A到C它的切比雪夫距离就为10
而A到D的切比雪夫距离也同为10
设平面空间内存在两点,它们的坐标为(x1,y1),(x2,y2)
则dis=max(
x1x2
,
y1y2
)
两点横纵坐标差的最大值就是切比雪夫距离
那可能就有人问了??,那AC的直线距离叫什么?
AC的直线距离叫欧氏距离也叫欧几里得距离
也就是我们生活中常用的,常说的两点之间的直接距离。
在我的世界里,有很多情况会运用的这个曼哈顿距离。
我们都知道一格水流可以额外向外流淌7格(根据洪水填充算法)
这就可以很好的解释什么是曼哈顿距离,水源和流淌到的最边缘的位置的距离就是曼哈顿距离。(处于同一水平且没有阻挡物)
还有光照递减也是根据方块坐标的曼哈顿距离计算的,怎么说呢?
光源(太阳光,火把,海晶灯等)向相邻六个方块(上下前后左右)传播时会衰减1光照等级,直到衰减为0。(光源也是根据洪水填充算法传播)
例如:在地上插上一支火把,火把所在方块的光源为14,则在同一平面内,火把前后左右的的方块亮度均为13,斜度角的亮度则为12(下图T为火把)
按照上图的插法可以使用最少的火把将区域内照亮保持在亮度8之上(包括8)阻止攻击型生物的生成。(处于同一水平)
又如下图,在粉色羊毛上插上一支火把,玻璃距离火把3格(曼哈顿距离)所以玻璃所在方块空间的亮度为14-3=11(玻璃透光)
切比雪夫距离也有用到我的世界里
一般刷怪笼的刷怪范围是以它为中心8×3×8的范围内刷怪,我们有时会说到刷怪笼只会在它4格范围内刷怪,这4格指的就是切比雪夫距离。(红色方块范围内)
还有建筑师们最常用到的/fill指令
例如:想要在我脚下10格的位置铺一层11×11大小的钻石平台。那输入指令的要求就是以我为中心,在距离我下方10格位置的方块5格范围内铺上钻石块。
/fill~5~-10~5~-5~-10~-5diamond_block(波浪号~代指玩家当前坐标)
这些指令~的距离都是切比雪夫距离。
当然还有欧几里得距离的运用
只有当玩家位于刷怪笼的16格范围内时,刷怪笼才会刷怪,这16就是欧几里得距离。
这个范围是一个欧几里得球体。
还有我们最需要知道的的,大部分生物只能生成在距离玩家24—54格范围内(鳕鱼、鲑鱼、河豚、热带鱼为12—32格)。
这个生成生物的范围也是欧几里得球体(扣去球心)
怎么样?现在能区别曼哈顿距离,切比雪夫距离,还有欧几里得距离了吗?
我们不仅要玩好游戏,我们还要了解一些内在的知识,不要过度沉迷游戏哦!
如果觉得对你有所帮助,记得点赞收藏,多分享!
感谢大家阅读本期内容。