19游戏网 > 游戏攻略>正文

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

来源:19游戏网编辑:网络转载更新时间:2017-04-17

  我的世界牛人尝试用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游戏网整理报道

猜你喜欢

口袋妖怪最强进化V3.0最终版图文攻略(全)

王者荣耀最强上分英雄排名玩的好就能上王者

剑网三成就党攻略那些容易快速完成的成就

梦幻西游2奇遇任务维摩诘经变图文详细攻略

绝地求生大逃杀在哪玩?steam购买下载方法介绍

王者荣耀S5赛季露娜连招改版之后真废了吗

奴隶少女希尔薇详细攻略

魔兽世界抑魔金获取方法及用法介绍

王者荣耀赵云大型攻略出装、技能及实战全教程

剑网三最全面抓马攻略套马的汉子才威武!

我的世界相关新手卡
我的世界热门文章
一周热门文章

健康游戏忠告:抵制不良游戏 拒绝盗版游戏 注意自我保护 谨防受骗上当 适度游戏益脑 沉迷游戏伤身 合理安排时间 享受健康生活

Copyright ◎ 2019 19yxw All Rights Reserved Powered By 19yxw QQ:3618073693