gpt4 book ai didi

java - 找出绕圆周移动所需的位置变化

转载 作者:行者123 更新时间:2023-12-01 14:28:48 24 4
gpt4 key购买 nike

我正在尝试编写一种方法,允许我的角斗士在两者之间旋转中心点,可以说是相互环绕。下面是我的代码。角斗士变量目标是角斗士类型,并设置为轮换中的第二方。 center[0] 是 x 位置,center[1] 是 y 位置。

    public void rotate(Gladiator a, int angle) {
double x1;
double y1;
double x2;
double y2;
double r;
double midx;
double midy;
int currentAngle2;
int currentAngle;

r = getDistance(a,a.target)/2;
midx = (a.center[0]-a.target.center[0])/2;
midy = (a.center[1]-a.target.center[1])/2;
currentAngle = (int)Math.atan2(a.center[1] - midy, a.center[0] - midx);

currentAngle2 = currentAngle + 180;
if (currentAngle2 > 360) {
currentAngle2 = currentAngle2-360;
}
System.out.println("Current angles = "+currentAngle+","+currentAngle2);

x1 = Math.cos(currentAngle+angle) * r + midx;
y1 = Math.sin(currentAngle+angle) * r + midy;
x2 = Math.cos(currentAngle2+angle) * r + midx;
y2 = Math.sin(currentAngle2+angle) * r + midy;
System.out.println("new coords: "+(int)x1+","+(int)y1+","+(int)x2+","+(int)y2);
a.move((int)x1,(int)y1);
a.target.move((int)x2,(int)y2);


}

这里有什么问题吗?第一次运行时,它们最终会叠在一起。

编辑:

angle 是请求的旋转量。

最佳答案

一个问题是您使用的是度数,而数学函数如 cos等等...使用弧度。

关于java - 找出绕圆周移动所需的位置变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16975631/

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