Syro
本帖最后由 24K的帅 于 2020-5-13 10:31 编辑

首先上效果图

也许思路不唯一,我实现的方法仅代表个人的思路。如果有其他的方法欢迎交流
(注:取g=16格/gt2

    我们先来看看我尝试过的几种不同思路,也许是有出口的,只是本人确实很久没碰mc可能比较菜没想到要怎么实现就放弃了

【PlanA】纯粹使用动力学

    我们知道,单摆运动是由拉力和重力提供合外力,重力mc本身就有,而拉力该怎么实现是很麻烦的。所以我想到很难制造一个类似于拉力的力就放弃了这种方法

【PlanB】运用能量守恒


    运用能量守恒可以轻松计算出在任意一个位置的速度大小,但是要命的是我发现似乎没有办法得到速度的方向,我唯一想到的得到速度方向的方法是反三角函数,但是由于我实在想不到要怎么计算,于是也放弃了

【PlanC】运用角速度

    这是我最后想到的实现方法,我个人认为实现起来会比较简单。首先我们可以通过计算得到在任意一个位置的速度,那么用这个速度除以一个固定的R就能够得到这个位置的角速度。那么就能够计算出下一gt摆线将会偏移当前位置的角度。从而达到想要的效果,大致算法思路如下:

    1.生成两个markerAEC 一个tag=O另一个tag=P 并且将P高频tp至O的视线正前方R格处

    2.用exe store获取两个marker的Y  做减法得到h
   
    3.用能量守恒计算出每个位置的v

    4.用v/R得到每个位置的w

    5.用exe store获取O的rotation,并通过+/- w实现O的视角的偏移达到效果,最终的效果为P以O为圆心做单摆运动

    思路应该不止一种,欢迎交流~







来自群组: The Minecraft Lover

goodmingzi
不明觉厉
话说你这个完全是用指令方块做的吗

Syro
goodmingzi 发表于 2020-5-13 10:37
不明觉厉
话说你这个完全是用指令方块做的吗

是完全用命令的

第一页 上一页 下一页 最后一页