我的世界牛人尝试用py解决盔甲架的角度的问题

时间:2017-04-21 来源:88130安卓下载 作者:佚名

  我的世界牛人尝试用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解决盔甲架的角度的问题。更多精彩尽在游戏园我的世界专区。

  相关攻略推荐:

  无人时我的世界盔甲架在做什么

  超奢华的巨大钻石盔甲 我的世界钻石盔甲架

  我的世界盔甲架基础命令方块详解

  我的世界盔甲架的装逼教程 你值得拥有

  我的世界牛人尝试用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解决盔甲架的角度的问题。更多精彩尽在游戏园我的世界专区。

  相关攻略推荐:

  无人时我的世界盔甲架在做什么

  超奢华的巨大钻石盔甲 我的世界钻石盔甲架

  我的世界盔甲架基础命令方块详解

  我的世界盔甲架的装逼教程 你值得拥有

热门搜索

手游排行榜

  • 最新排行
  • 最热排行
  • 评分最高