距离

您所在的位置:网站首页 潮涌能量指令是什么 距离

距离

2024-07-17 01:21| 来源: 网络整理| 查看: 265

  本条目介绍的是Minecraft中的距离测量方式。关于控制世界计算范围的设置,请见“模拟距离”;关于世界的边界,请见“距离现象”。 此页面仍需完善。

你可以帮助我们扩充更多信息。说明:缺少部分用途,例如潮涌核心提供潮涌能量及攻击、僵尸的增援、僵尸围城、蜜蜂、海豚、熊猫和僵尸猪灵的敌对、成就“在铁路上”“把我传走”“超音速”“温暖如家”“蔓延”“合成器合成合成器”和进度“曲速泡”“温暖如家”“电涌保护器”“合成器合成合成器”、统计信息

计程车距离与欧几里得距离的对比。在切比雪夫距离中,这两个终点与起点的距离分别为3格与4格

在Minecraft中,两点之间的距离指两个点之间所相隔的空间长度。一个方块的截面长度被定义为1米。游戏中的距离测量方式主要有三种,分别为欧几里得距离曼哈顿距离以及切比雪夫距离,使用哪种测量方式取决于对计算精度和效率的要求。

在下列说明中,前提条件都是给定三维空间上的两个点(x1,y1,z1)与(x2,y2,z2),令这两点之间的直线距离为d。

目录 1 欧几里得距离 1.1 用途 2 曼哈顿距离 2.1 用途 3 切比雪夫距离 3.1 用途 4 垂直距离 4.1 用途 欧几里得距离[编辑 | 编辑源代码] 用Minecraft的方块代替方形街区解释欧几里得距离

欧几里得距离(Euclidean distance),亦被称为直线距离,用两点之间的线段长度来测量彼此的距离。这种距离使用勾股定理计算,即:

d=(x1−x2)2+(y1−y2)2+(z1−z2)2

游戏中部分情况取用水平欧几里得距离,其范围为高度无限的圆柱体:

d=(x1−x2)2+(z1−z2)2

这是几何学中对两点距离最精确的算法。游戏一般只在需要较大精确度的地方使用欧几里得距离算法,相对不太常用。然而,平方根算法是一个处理器密集型算法,特别是在处理器性能不高的设备上,在同一游戏刻中执行的处理器密集型操作过多可能会导致游戏卡顿。如果不是需要精确求得欧几里得距离,只是比较欧几里得距离是否达到某个值,则不需要执行平方根算法,如比较两点之间的欧几里得距离是否达到16,只需比较开平方前的值是否达到256即可,无需将该值开平方后再与16比较,比较两个点与第三点之间的欧几里得距离同样也不需要执行平方根算法。

游戏在处理生物和弹射物移动时进行的运算是已知欧几里得距离、起点坐标和方向反求终点坐标,此时用到的算法是正弦算法,同样也是一个处理器密集型算法,在处理爆炸对实体的推动时,根据实体与爆炸源的位置处理移动方向不需要使用正弦算法,但求出终点坐标时依然要使用平方根算法,所以生成大量生物、同时发射大量弹射物、点燃大量TNT等操作易导致游戏卡顿。

用途[编辑 | 编辑源代码] 大多数生物检测目标生物时遵循欧几里得距离,其检测范围为欧几里得球体,但也存在少数例外情况,同一生物检测不同目标的距离也可能不同,当检测到目标生物时该生物可能会对其作出攻击、靠近或逃跑等反应。 与大多数生物不同的是,监守者可嗅探实体的范围为水平欧几里得距离6格,垂直20格内。[需要更多信息] 大多数生物的移动遵循水平欧几里得距离,大多数弹射物的移动遵循空间欧几里得距离。 大多数声音的传播范围是以声源为球心,半径为16格的欧几里得球体。 刷怪笼需要欧几里得距离16格内有玩家时才会运作,试炼刷怪笼的运作条件则是欧几里得距离14格内有生存或冒险模式的玩家。 生物不会在与玩家或玩家出生点的欧几里得距离24格内生成,在Java版中,生物的清除范围取决于欧几里得距离。 部分生物与玩家欧几里得距离超过32格超过一定时间时将不会随机移动。 河流与湖泊中生成的圆盘是从中心方块向外计算欧几里得距离生成的。圆盘生成后会被拟合为方块,因此小的圆盘看起来像曼哈顿菱形而不是一个圆,圆盘越大就越像一个圆形。 爆炸的效果。 在Java版中,避雷针会吸引欧几里得距离128格范围内的闪电。 拴绳的最大有效长度为10格,玩家与拴着的生物之间超过10格后拴绳就会断裂,拴绳会尝试将二者的距离控制在6格以内。在基岩版中,二者的距离小于4格时,拴绳就会从紧绷状态变得松弛下垂。 在Java版中,钟被敲响后,以钟为中心半径48格内的灾厄村民、劫掠兽和女巫都会获得发光效果。 下界传送门搜索到终点传送门之后会选取欧几里得距离(考虑Y轴)最近的传送门。 幽匿感测体和校频幽匿感测体的检测范围是一个欧几里得球体,幽匿感测体被玩家的行为激活时会发送信号将欧几里得距离8格内的幽匿尖啸体激活。 当幽匿催发体欧几里得距离8[仅Java版]或10[仅基岩版]格内有生物死亡时会触发幽匿催发体。 喷溅药水破裂时的影响范围是半径为4格的欧几里得球体。 区域效果云的影响范围是一个欧几里得球体。 在Java版中,冰霜行者会在当前位置为中心,欧几里得距离魔咒等级+2格的范围内生成霜冰。 成就“狙击手的对决”[仅基岩版]、进度“狙击手的对决”和“正中靶心”[仅Java版]需要玩家与目标的水平欧几里得距离超过一定值时才能达成。 在Java版中,进度“它蔓延了”要求玩家击杀生物时欧几里得距离8格内有幽匿催发体。 /locate命令选择欧几里得距离与执行点最近的目标,并且会显示执行点与该目标的水平欧几里得距离。 命令中的目标选择器@p选择距离最近的玩家,参数distance[仅Java版]、r、rm[仅基岩版]筛选与命令执行点欧几里得距离在给定范围内的实体。

从受到喷溅药水伤害的蠹虫分布图可以看出药水的伤害范围是欧几里得距离

Java版中与生物生成和清除相关的范围的示意图

猪灵对玩家打开容器行为的检测范围

幽匿感测体和幽匿催发体的检测范围

避雷针吸引闪电的范围(雷击点由荧石标记)

曼哈顿距离[编辑 | 编辑源代码]

曼哈顿距离(Manhattan distance),别称计程车距离(Taxicab distance)方格线距离(rectilinear distance)城市街区距离(city block distance),是计程车几何学中用于测量距离的度量标准。曼哈顿距离是计算两点的横、纵、竖坐标之差的绝对值之和:

d=|x1−x2|+|y1−y2|+|z1−z2|

游戏中部分情况取用水平曼哈顿距离,通常在高度上有额外限定:

d=|x1−x2|+|z1−z2|

曼哈顿距离相比之下精准度更低,但计算速度更快。在游戏中,这种算法最明显的结果就是用曼哈顿距离作半径画出的曼哈顿“圆形”看起来更像方形,只是这种方形的顶点在坐标轴的方向上(比如火把的照明范围)。在这种情况下,曼哈顿圆的半径只在四个基本方向(东南西北)与欧几里得圆的半径相等,而在其他方向上的半径则会被缩短。同样,在三维坐标系中,曼哈顿“球形”看起来像是八面体。

用途[编辑 | 编辑源代码] 火把、荧石等光源发出的光的衰减规则。 这使得发光方块会根据曼哈顿距离融化雪和冰,参见雪 § 融化及冰 § 储水。 加热块[仅教育版]不发光,但也能融化曼哈顿距离2格内的雪和冰。 液体的扩散方式。例如,1格宽的水流流经拐角处时,只会经过7个方块。而当水能够在平面上自由流动时,可以流经该平面曼哈顿距离7格内的所有方块。 红石线信号的扩散方式遵循水平曼哈顿距离。 拉杆和按钮会在其周围曼哈顿距离为1格的平面内发出红石信号。 在基岩版中,模拟距离表示玩家周围接受游戏刻更新的方块与玩家之间的最大距离,超过这个距离后生物就会被清除;模拟距离同样使用了曼哈顿距离进行计算。 在基岩版中,刷怪笼会在其自身周围水平曼哈顿距离4格范围内生成生物。[需要更多信息] 海绵会吸收曼哈顿距离至多7格远(以海绵为中心的一个八面体范围内)的水。 树叶与脚手架会通过名为“距离”的方块状态测量其到中心方块的距离,这种测量使用了曼哈顿距离进行计算。 铜质方块的锈蚀速度与周围曼哈顿距离小于等于4的未涂蜡的铜质方块锈蚀程度和数量有关。 潜影弹一次只能沿着三个坐标轴的其中之一进行整数步移动。 某些红石元件会产生曼哈顿距离至多两格远的方块更新,包括上方与下方。 在空闲和欢呼状态下的猪灵会主动远离水平曼哈顿距离8格、垂直半径4格内的灵魂火、灵魂火把、灵魂灯笼和灵魂营火。 当“允许破坏性生物行为”(mobGriefing)设置为true时,部分生物会主动寻找并试图踩碎以其脚下方块为中心垂直距离±3格、水平曼哈顿距离24[仅Java版]或10[仅基岩版]格内的海龟蛋。[需要在基岩版上验证] 当幽匿催发体附近有生物死亡时,哪些方块会转化成幽匿类方块取决于方块与死亡生物之间的曼哈顿距离。

水在主世界的水平扩散

熔岩在主世界的水平扩散

一些发光方块形成的菱形光照区域

模拟距离内避雷针周围被闪电击中的菱形区域(雷击点由海晶灯标记)

正在融化雪的红石灯

幽匿催发体激活后将部分方块转化

切比雪夫距离[编辑 | 编辑源代码]

切比雪夫距离(Chebyshev distance)是分别计算两点的横、纵、竖坐标之差的绝对值,之后取最大值:

d=max⁡(|x1−x2|,|y1−y2|,|z1−z2|)

游戏对切比雪夫距离的使用相对较少。以切比雪夫距离为半径画出的“圆”看起来像一个方形,而“球形”则像一个立方体。游戏中部分情况取用水平切比雪夫距离,并额外限定高度来设定范围,该范围是一个底面为正方形的长方体:

d=max⁡(|x1−x2|,|z1−z2|)

从计算方面来讲,使用切比雪夫距离并不比使用曼哈顿距离高效多少,但对有关一个围绕中心坐标的方形或立方体区域中的计算非常有用。

用途[编辑 | 编辑源代码] 水及其下方一格周边水平4格范围内的耕地能被润湿。 根据信标金字塔的大小,信标的作用范围分别为20、30、40或50格,该范围会向上延伸所在维度高度[仅Java版]或无限[仅基岩版]格。 在Java版中,区块加载等级会呈方形逐级递减。 在Java版中,刷怪笼会在其自身垂直±1格、水平切比雪夫距离±4格的范围内生成实体。 试炼刷怪笼生成怪物的范围取决于切比雪夫距离。[需要在基岩版上验证] 未涂蜡的铜质方块被闪电除锈时每次寻路尝试会选择切比雪夫距离不大于1的方块进行搜索,理论上最远能为切比雪夫距离8格远的铜质方块除锈。 在基岩版中,避雷针会吸引切比雪夫距离32格范围内的闪电。[需要验证] 蘑菇理论上最远能传播到切比雪夫距离5格远的地方,若其自身及其上下一格周围的水平范围切比雪夫距离4格内存在5个及以上同种蘑菇则不会传播。 对草方块使用骨粉会使其自身和附近切比雪夫距离7格内随机选取的草方块上方生成草、蕨[仅基岩版]和花。 对珊瑚块上且位于水源中的海泡菜使用骨粉有概率向以该格为中心X和Z轴偏移-2 – 2格、Y轴偏移-1 – 0格的下方为珊瑚块的水源蔓延。 对水源下方的任何完整方块使用骨粉会使该方块上及其切比雪夫距离7格内的方块上生成海草、珊瑚和珊瑚扇。 对上方为空气的苔藓块使用骨粉会使水平切比雪夫距离3格,垂直5格范围内的部分方块转变为苔藓块,由此可生成的其他方块也在该范围内生成。[需要验证] 幻翼会生成在玩家上方水平切比雪夫距离10格的范围。 当幽匿尖啸体成监守者时,其生成范围为尖啸体水平±5格、垂直±6格的范围。 潜影贝传送时会传送到切比雪夫距离8格范围内的随机一个完整表面上,龙蛋的传送范围在垂直±7格、水平切比雪夫距离±15格范围内。 末影人传送时会传送至切比雪夫距离32[仅Java版]或16[仅基岩版]格范围内的随机位置,玩家或狐狸食用紫颂果时则会传送至切比雪夫距离8格范围内的随机可站立位置。[需要验证] 下界传送门搜索终点传送门的范围为水平切比雪夫距离128格(主世界)或16格(下界)内。 当蠹虫受到攻击或中毒效果的伤害时,其水平切比雪夫距离10格内、垂直切比雪夫距离5格内的虫蚀方块会被破坏并生成蠹虫前来增援。 当僵尸村民切比雪夫距离4格内有铁栏杆或床时会加速其治愈,在基岩版中,当僵尸村民被治愈时,以该村民为中心切比雪夫距离16.5格内的其他村民会根据被治愈村民的数量提供成比例的折扣。 当以唤魔者为中心切比雪夫距离16.5格内存在的恼鬼数小于8时,唤魔者才可能召唤恼鬼。在空闲时,恼鬼会在召唤它的唤魔者水平切比雪夫距离7.5格内游荡。[需要更多信息] 疣猪兽会远离水平切比雪夫距离8格内的诡异菌、诡异菌盆栽、下界传送门方块和重生锚。[需要更多信息] 当以监守者为中心切比雪夫距离24.5格内存在生物时,监守者会嗅探周围的气味。[需要更多信息] 在基岩版中,犰狳检测到水平切比雪夫距离7.5格内的威胁生物后会蜷缩,蜘蛛和洞穴蜘蛛会主动远离切比雪夫距离3.5格内未蜷缩的犰狳。[需要更多信息] 在Java版中,在创造模式下手持屏障或光源方块时,其切比雪夫距离32格内的屏障或光源方块会随机以粒子效果的方式显示其物品图标。 在基岩版中,冰霜行者会在当前位置为中心,切比雪夫距离魔咒等级+2格的范围内生成霜冰。 在基岩版中,成就“开始了?”和“开始了。”要求玩家与凋灵之间的水平切比雪夫距离在50格以内。[需要更多信息]

水周围4格以内的耕地会被润湿

信标在水平方向上的作用范围是以其自身为中心的一个正方形区域

Java版的出生点区块,是一个边长为23个区块的正方形区域

垂直距离[编辑 | 编辑源代码]

游戏中部分情况完全忽略x和z的值,仅以y值判定距离,形成两个平行的平面所包夹的范围:

d=|y1−y2|

通常还有方向限制:

d=y1−y2 用途[编辑 | 编辑源代码] 摔落伤害取决于已下落的高度。 重力加速度只影响实体在y坐标上的运动情况。 成就“从这里往下看风景真好”[仅基岩版]和进度“这上面的风景不错”[仅Java版]要求玩家带有飘浮效果垂直移动至少50格,在Java版中方向不限,在基岩版中必须向上飘浮。 成就“还要啥火箭啊?”[仅基岩版]和进度“还要啥火箭啊?”[仅Java版]要求使用风弹使自己至少向上推动8格。 在基岩版中,成就“蹦床”要求落在黏液块后至少向上弹起30格。 在Java版中,统计信息“已攀爬距离”和“摔落高度”只取用y值判定距离。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3