17.使用“计算”怎么停止一个重复的命令方块后只能获得()图像

本帖最早是我发布于mcbbs今天突然囿想法就在b站也发一下。b站的这个号和mcbbs的“时之虫”都是我内容可能会有细微更改,但不存在侵权问题

另外如果要转载到其他平台上必须私信向我申请。

但是一说到冰道船到底有多快网上就众口不一了:有说30m/s的,有说80m/s的有言之凿凿200km/h的,有说不超过40m/s的……
就连大佬李芒果(ilmango)说的都不一定对他说是75米每秒(av)。

然而问题来了为什么我说以上数字都是错的呢?因为不论你是冰、浮冰还是蓝冰的跑道船都有一个加速的过程,换句话说船的速度是变量不是定值,随便跑完一段跑道然后直接速度=路程/时间得出来的数据都是错的


虽然說冰船的速度是变量,但是它的速度有一个最大上限这个最大上限是定值,是可以测量得到的

用minihud测速的结果:蓝冰船最大速度为72.727m/s,也僦是3.63635m/gt可见开头所列举的各种错误数字也差的不少,只有李芒果的相对最准但也差了大概2m/s。

简单介绍一下我测量速度的方式:

测量速度长长的跑道是必不可少的(废话)。我铺设了多条3600格长一格宽的跑道跑道起点用发射器放置船。

起点和终点如图所示为了简便,跑噵沿x轴正方向从x=0延伸到x=3600。最左侧的是普通冰右侧是蓝冰,中间几条是普通冰和蓝冰按照不同比例混合的冰道混合冰道虽然由于建造複杂很少用到,但我认为仍然有研究价值

2.计时器我通过每gametick增加1的计分板来测量时间。我创建了两个计分板项目:Timer和Switch前一个记录时间,後一个作为开关决定是否开始计时具体实现的怎么停止一个重复的命令方块如下(可以跳过):

在红石控制的循环怎么停止一个重复的命令方块方块中执行:

其中Switch分数用于控制是否开始计时(工作模式),Switch在1和2之间时开始计时;Timer用来计时表示从开始划船的时间(gt)。

由於执行第三条的怎么停止一个重复的命令方块方块在出生点区块所以不管我跑多远计时也不会因区块卸载而停止。

如何控制计分开始呢这也是非常简单的。在跑道起点我设置了如下装置:

发射器是用来放置方向绝对准确的船(如果方向不准确,那么脱轨是必然的自嘫也不能获得准确的数据)。玩家手动放船很难获得方向准确的船所以我使用了发射器。

当按下按钮后船出现,但这时候船不会触发踏板(XK打钱)

船的碰撞箱刚好没有触发踏板

只有玩家坐上船出发之后,踏板才会被踩下

相应的,在跑道终点我设置了停止计时的装置:

这樣做是因为冰船实在太快冲过踏板时有非常大概率没有触发单个踏板,所以我用了一连串踏板确保一定有踏板被触发。
起跑前将Timer分数偅置为1
跑道终点的停止计时装置

这样做是因为冰船实在太快,冲过踏板时有非常大概率没有触发单个踏板所以我用了一连串踏板,确保一定有踏板被触发

起跑前需要将Timer分数重置为1。

为了真正有效的研究出冰道船的加速规律和最大速度我每gt采集一次船的位移(x坐标)囷对应的时间(计分板分数Timer,单位为gt)

然而这么丧心病狂的采集速度(一秒钟采集20次数据)绝不是玩家手动能完成的,而且玩家开船的時候不能敲指令所以我请来了/data怎么停止一个重复的命令方块来帮忙。具体实现方式如下:
在-2 107 0 放置一个讲台方块(其实坐标是随意的)仩面放一本成书(内容任意,反正也得被清除掉)
然后用循环怎么停止一个重复的命令方块方块链接若干连锁怎么停止一个重复的命令方塊方块执行如下怎么停止一个重复的命令方块:

先将玩家的x坐标(Pos[0])写入到书的pages列表中(list类型nbt只能存储一种类型的数据事先清空了pages这个列表。)然后将玩家的Timer分数乘以-1写入到书的pages列表中。如此循环直至玩家抵达终点

由于指令方块有跳刻执行之类讨厌的特性(bug),这一串指令可以有效暴露出采集失败的数据便于剔除。

通过这种方式我们把整个运动过程中每一gt的位移和时间都记录在了讲台上的一本书裏。


接下来对着讲台按下F3+i这是游戏默认的热键,可以将准星对准的方块/实体的全部nbt复制到剪贴板然后送到word文档里,用替换整理了数据格式将其导入到matlab中

这样我们就将冰船运动过程的数据导入成为了matlab中的一个行向量(非常长)这个行向量的名字叫做Raw,原始数据的意思

接下来就没有mc的事儿了。关掉mc在matlab中执行如下指令:

代码中Length是Raw这个行向量的长度。代码的作用很简单遍历了Raw,将其中的奇数次数项(玩家x坐标)作为Data这个2*N矩阵的每一列的第一行;偶数次数项(x坐标对应的时间的相反数)去绝对值作为Data每一列的第二行。

这样我们就将Raw整理为了一个第一行是位移第一行是时间的列表。

这一段代码是将t+1时刻的位移x_t+1与t时刻的位移x_t相减作为t时刻的速度v_t;

然后将t+1时刻的速度v_t+1與t时刻的速度v_t相减,作为t时刻的加速度a_t

由于时间单位都是gt,除以1gt数值上没有影响所以代码中没有除以时间差。

这样处理有一定误差泹是影响不大,它主要是用来给出一个非常重要的定律获得准确数据另有计算方法。

由此可以做出一系列的图表:

从这些图里可以看出x-t图确实趋近于一条斜着的直线,速度确实是一个变量并且趋近于一个特定的值加速度也在从一个有限的数字逐渐接近0。这说明文章最開头关于运动规律的定性描述是正确的

三.至关重要的一个定律:

计算出近似的速度和加速度之后,以v为横轴a为纵轴作出a-v关系图,我们囿了一个很显著的发现:

a和v呈现出非常好的线性关系换句话说,加速度是速度的一次函数这是一个非常重要的发现。

接下来的研究过程用到了微分方程受排版限制,我用图片显示不想看公式推导可以跳过。

经过以上推导我们得出了几个重要结论

看到这里你可能偠说了,解析式你都写出来了那这玩意全都是符号,这些代数都是多少

别急,下一步就是测量出μ和m这两个数的值

直接拟合a-v直线的方程来获取μ、m的值自然是可以的,但是我们获得速度和加速度的算法有一定的偏差,是不够精准的这样测量出来的k和m也有一定的误差。為了更加精准的测量我们需要利用前面推导出的结论。
在我们获取的所有数据中只有原始数据(位移和时间)的可信度是最高的。虽嘫v和a有误差但是a=k*v+m的线性关系仍然是成立的。

由于跑道足够长(3600格)根据冰船运动的渐近线方程我们需要至少两个数据来确定k和m:冰船運动的最大速度,也就是x-t渐近线的斜率以及x-t渐近线的纵截距

那么又回到开头的问题了:怎么测量速度

答:截取3600m跑道中最后的约1000格,鼡对应的位移差除以时间差
让我们重新翻出v-t图:

很显然,在绿框这一段路程中船的速度已经收敛,非常接近最大速度计算出这一段嘚值,就得到了最大速度
而后者,也就是x-t图渐近线的纵截距只需要选取接近跑道终点的一对位移和时间数据,与最大速度一起代入x-t渐菦线公式就可以计算出纵截距。

前面已经说过最大速度

,所以纵截距除以最大速度就得到了μ的倒数,μ的倒数的倒数就是μ值。而m值同样可以通过最大速度乘以μ的倒数来得到。

这就是比拟合更精确的测量方式

这里说一下我对混合冰道构成的表示法:混合冰道由一定長度的普通冰和蓝冰拼接而成,在一对比例中前者是蓝冰段的长度后者是普通冰的长度。如4:1冰道的每一个单元都是四块蓝冰和一块普通冰组成1:29冰道的每个单元都由一块蓝冰和29块普通冰。显然1:0和0:1分别表示纯蓝冰道和纯普通冰道。

用上述测量方法处理了这13组数据测得的μ、m、v_m和1/μ的结果如下表:

观察最下面一行的相对标准差就可以发现,μ、最大速度和μ的倒数的相对标准差都很大也就是说它們的值随冰道成分变化而变化,与冰道成分有关m的相对标准差很小,只有1.5%可以认为不同冰道上运动时m是一个常数,m的值与冰道成分無关m的值取平均值,m=0.

μ的值则分别取这种冰道对应的μ值

将μ和m的值代入公式,我们得到了两组可以直接用的公式

注意:船行时间近姒公式是近似公式只适用于冰道长度比较长的情况。
普通冰道超过120格时适用蓝冰道超过800格时适用。

五.冰船运动公式的物理意义
虽然我們已经知道了冰船的最大速度但在这些公式中仍然隐藏着不少有趣的东西。
上文已经说明无论是什么冰道,初始加速度m都为一个定值初始加速度相同,这意味着什么
这意味着有一个恒力F恒定推动着这艘船,F给船的加速度是恒定的

0.m/gt^2而船的实际加速度与速度是一次函數,说明有另一个力f阻碍船的前进这个阻力与船速成正比。F就是玩家划船的推动力f就是冰道具有粘性对船的阻力!这种阻力和速度方姠相反,且成正比例的运动属于阻尼运动,那么刚才那个k它就有了一个新的名字阻尼系数。(严格来说k的绝对值是阻尼系数)

阻尼系數表示冰道的粘滞程度它的倒数就表示了冰道的光滑程度。

看到没有我们为船的运动找到了一个合适而且简洁的物理模型!MC终于讲了┅回物理,牛顿老爷子您可以安息了

(方块它该浮空还浮空啊)

六.混合冰道的阻尼系数

作为速度与阻力加速度的比值,μ可以表征冰道的粘滞程度。这样我们可以列出不同冰道的μ值如下表所示

不同成分混合冰道的μ值表

仔细观察数据发现,除了4:1这个反常值μ总体上是随着冰道中普通冰的含量增长而逐渐变大的,而且混合冰道的粘滞系数都处在纯蓝冰和纯普通冰之间回顾前面的最大速度v_m表也是这样。那么我们有理由猜测混合冰道的μ值是蓝冰和普通冰μ值的平均数(当然平均数不一定是算术平均数),而且这个平均数还与冰道的成分關系密切

这里我直接放出研究的结果:混合冰道的粘度系数μ是两种冰μ值的加权平均数(算术平均),权重就是这两种冰在冰道中所占的比例公式如下:


混合冰道阻尼系数计算公式

那么问题来了,这个公式是怎么推导出来的呢

2.粘滞程度公式的数学模型、推导和验证
接下来又是一段推导过程,不想看公式可以直接跳过这一段不妨碍理解,也不妨碍后面利用这个公式提高冰道船的效果

加权平均公式嘚物理诠释

推导完这个公式之后,还需要验证一下它是否符合实验数据(公式不符合实际那还说个毛线

检验公式与实验数据的符合程度

可鉯看出这个公式的符合程度还是很好的,最大的相对误差也只有2.440%

1.这些公式有什么用?
这里我通过两道例题来简单展示一下

例题1:Alex在丅界基岩上层修建了一条长为400格的普通冰道,从冰道一端开船到另一端需要多长时间?解:上文中有近似公式t = x ÷ 40.000 + 2.2938(单位为米、秒)

例题2:冰船在蓝冰道上前行多长时间船速可以达到它在普通冰上的极限速度?

普通冰的速度极限是2.0000将v=2.0000代入公式中,化简得

MC这次终于物理了┅回(并不)牛顿老爷子您可以安眠了。

我要回帖

更多关于 怎么停止一个重复的命令方块 的文章

 

随机推荐