我的世界牛人尝试用py解决盔甲架的角度的问题。那下面给大家分享的则是我的世界玩家关于盔甲架角度问题的尝试方法哦~那有感兴趣的玩家不妨进来看看下面的介绍吧!
游戏园我的世界官方群:325049520 或 256070479 欢迎各路喜爱我的世界的小伙伴们加入讨论!
玩服务器的小伙伴们可以加入:141931866 群一起联机玩游戏哦!
如果你是腐竹的话可以给我们投稿你的服务器哦~投稿地址:点我进入
如果你有心仪的作品或者心得分享的话,欢迎来游戏园投稿,大家可以点击>>>投稿<<<进行投稿哦~ 有奖品哦~
为了解决盔甲架的方向不好解决的问题 我尝试用py来算出来盔甲架的NBT由于我是py萌新 数学学渣 这个一定有错误 请各位大触不要留情面的指出
输入的ABC是这个部件的木杆指向的方向 (比如1 1 1或者2 2 2 是沿着体对角线方向 -1 -1 -1 是和那俩相反的方向)t是指向这个方向之后再绕着轴旋转的弧度
from math import *
def armorstand (A,B,C,t):
a=C*C+A*A
b=C*C+B*B
c=A*B
l=sqrt(A*A+B*B+C*C)
if C==0:
if A==0:
x=cos(t)
y=0
z=sin(t)*((B<0)*2-1)
else:
x=-sin(t)*A*B*sqrt(B*B/(A*A)+1)/(A*A+B*B)
y=sin(t)/sqrt(1+B*B/(A*A))
z=sqrt(max(1-x*x-y*y,0))*(((-A*cos(t))>0)*2-1)
else:
x=C*cos(t)/sqrt(a) - (c/a)*C*sin(t)/sqrt(b-c*c/a)
y=C*sin(t)/sqrt(b-c*c/a)
z=(A*x+B*y)/(-C)
thz=pi/2 if x==0 else -atan(y/x)
Az=(A*cos(thz)-B*sin(thz))/l
Bz=(B*cos(thz)+A*sin(thz))/l
Cz=C/l
d=x*cos(thz)-y*sin(thz)
f=z
thy=acos(d)*(2*(f>0)-1)
thx=-acos(Bz)*(2*((Az*f-Cz*d)>0)-1)
return 180*thx/pi,180*thy/pi,180*thz/pi
输出就是盔甲架的NBT了
可以这样来获得需要的指令
def armorstandcommand(a,b,c,d):
return "/summon Armor_Stand ~0 ~1 ~0 {Pose:{Head:[%.8fF,%.8fF,%.8fF]}}n" % armorstand(a,b,c,d)
为了让角度处于(-180,180] 我在测试时用了这个。需要者自取@MsYqgzt
def a(x):
return x+floor(0.5-x/360)*360
效果图:
A=B=C=1和A=B=C=-1,t间隔pi/6
PS:在此非常感谢我的世界MCBBS玩家chyx的分享。
以上就是我的世界牛人尝试用py解决盔甲架的角度的问题。更多精彩尽在游戏园我的世界专区。
19游戏网整理报道