Minecraft(我的世界)中文论坛
标题: Mc空间学(右手坐标系+(Pitch&Yaw)与向量的正导和反导)
作者: asdfg25855 时间: 2016-8-21 22:08
标题: Mc空间学(右手坐标系+(Pitch&Yaw)与向量的正导和反导)
本帖最后由 asdfg25855 于 2016-8-22 15:40 编辑
虽然我也想更6.但是还是看点空间学基础再说吧...不知道叫MC里的空间计算叫什么,暂且叫他MC空间学好了(不懂向量与右手坐标系的同学请转歩百度)1.向量(Vector)
其实向量类不止org包里的Vecter
在NMS里也有类似的Vec3D
向量的基本参数是(X,Y,Z),向量在MC的右手坐标系中表示的是一个带长度的指向在MC中它可以作为实体运动的依据;也可以作为判断某种位置的工具
对实体运动而言,BukkitAPI中的Entity有特殊提供的方法setVelocity(Vector v);
用于设置实体的速度,比如我们new一个Vector(0,1,0);
然后给一个实体对象setVelocity(Vector(0.1,1,0.1))
那这个实体就会向
X轴的正方向位移0.1个单位,向Y的正方向位移1个单位,向Z的正方向位移0.1个单位.
在游戏中看起来就像跳了一下似的;
2.Pitch&Yaw
Pitch和Yaw是判断实体朝向的标量尺度;
其实还有一个Roll,但是在MC中Pitch和Yaw就足够用了
然而在NMS中Entity类的pitch和yaw变量和我们在游戏中按F3所显示的Facing(朝向)的数值有所出入
1.Pitch:(绕X轴旋转)
这个没什么好说的.很单一,日后补图
2.Yaw:(绕Y轴旋转)
Yaw有两种情况;
情况1:-360~0
情况2: 0~360
(日后补图...为什么只能图床...)
这两种情况有特定的变换条件,当你以Y轴绕某个方向转的时候,可能会不知不觉的发现自己的Yaw会从正的变成负的或者从负的变成正的;然后继续转就进入了无限的-360~0循环或0~360循环(这话很绕,对吧)
这种情况虽然存在,但对我们的正导和反导没什么影响
3.从实体的Pitch和Yaw中推断出实体的朝向对应的向量(正导)
(待更)
4.从向量反推出Pitch和Yaw(反导)
先提出一个问题:如果我们想做出某些网游中追踪目标的技能,但是MC是三维第一人称.那我们该怎么做呢;
我想出的是用ActionBar还是什么去告诉玩家,目标在几点几点钟方向,距离他有多远;
于是这个解决方法就需要我们从向量反导出Pitch和Yaw(论坛还会给我自动排版,排的真好看。。。。)
作者: 乙烯_中国 时间: 2016-8-21 23:01
so?这是在编辑之中吗?
作者: asdfg25855 时间: 2016-8-22 00:35
我按了保存草稿 = =
作者: asdfg25855 时间: 2016-8-22 18:19
来人给点意见哇...指正也行
作者: Deing 时间: 2016-8-22 18:32
本帖最后由 Deing 于 2016-8-22 18:42 编辑
大触我想问个问题,如果有空帮忙看一下如果没空就忽略好了
mc1.9之后,烈焰弹Fireball等弹射实体多了一个nbt:power,它决定的实体速度不会变化。,
power:[0.0,0.52,0.0]
比如我用指令给一个烈焰弹上边这个power值,它就会以一定速度向y轴正向飞行并且不会减速。
不过,我发现mc中的速度不能突变,也就是说如果我将上述烈焰弹的power修改为其他值,它不会立刻变成新的速度,而是会自行脑补一个加速度,这样就会飞出曲线轨迹。
我想问的是,那个加速度是怎样得出的,是固定值还是随机值还是某个量的函数值?(因为我只会指令还不会读mc的代码所以自己解决不了。编程基础有一点)
作者: asdfg25855 时间: 2016-8-22 18:57
额...按照你那么说,我觉得那个不是一个加速度,而是之前的速度和之后加的速度合成出了一个新速度
然后实体在这个新速度与重力加速度的作用下做出类似平抛的曲线运动.代码里可以用mot去调速度...
但是我不会命令方块,版本知识只限1.8...抱歉
作者: Deing 时间: 2016-8-23 12:10
首先很感谢你的回复
不过,用上power之后烈焰弹是不受重力影响的,其速度完全由power这个nbt决定
嗯你主要研究1.8,那就不麻烦你啦
再次感谢~
作者: 土球球 时间: 2016-8-23 19:35
给一个应该没有问题的获取Pitch和Yaw的方法:
- pitch = Math.atan2(-y, Math.sqrt(x * x + z * z)) * 180 / Math.PI
- yaw = Math.atan2(-x, z) * 180 / Math.PI
复制代码
反正MC的坐标系统各种反人类。。。坐标是右手系的,而实体又是左手系的= =
作者: kqn3 时间: 2017-6-27 08:22
我竟然在mcbbs看数学
作者: dust_of_heart 时间: 2017-8-22 19:29
正导和反导还以为是去求导了#(滑稽)
沉迷高数无法自拔