gpt4 book ai didi

java - 使用 tan 求三角形的角度

转载 作者:行者123 更新时间:2023-11-29 05:04:51 29 4
gpt4 key购买 nike

好吧,我在我的一个游戏中为僵尸制作了一个人工智能,但是当我尝试旋转僵尸以便他面对玩家时,一切都变得一团糟。他们以错误的方式旋转,当我靠近时旋转,即使角度不应该改变。这是我的一些代码:ps 忽略 z,这个游戏是 3d,但我只在轴上旋转,所以我可以把它编码成 xy。

//get camera/player yx
float PlayerYPosition = Player.getPosition().y;
float PlayerXPosition = Player.getPosition().z;
//get zombie yx
float ZombieYPosition = Zombie.getPosition().y;
float ZombieXPosition = Zombie.getPosition().z;
//get side lengths
float sideY = (CameraYPosition - ZombieYPosition);
float sideX = (CameraXPosition - ZombieXPosition);
//get angle
float angle = (float)Math.atan2(sideX,sideY);
//move decimal place out so ex: 0.90f is 90.0f
float ans = angle * 100;
//set rotation of zombie
super.setRotY(ans);

最佳答案

Math.atan2返回其在 radians 中的值,不是学位。要转换为度数,请乘以 180/pi 或 360/(2 pi):

float ans = angle * 180 / Math.PI;

Java 甚至为此内置了一个函数,Math.toDegrees :(感谢@yshavit)

float ans = Math.toDegrees(angle);

此外,@yshavit 在评论中说:您应该在整个代码中使用弧度。但这可能工作量太大,或者您可能依赖与学位相关的第 3 方图书馆。

关于java - 使用 tan 求三角形的角度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30696675/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com