gpt4 book ai didi

Java 旋转矩形产生奇怪的值

转载 作者:行者123 更新时间:2023-12-02 02:19:55 25 4
gpt4 key购买 nike

我正在用 Java 制作一个游戏引擎。我正在尝试将盒子碰撞添加到我的游戏中,并且该盒子需要能够随玩家旋转。我搜索并找到了一个公式,该公式应该计算旋转点的新点,但是,当我旋转我的点时,它们似乎遵循一个奇怪的不成比例的8字形路径,而不是围绕我的盒子中心的圆。

for (Point p : points) {
//Loops through every point on the box (Square)
//top, left, bottom, right

float pointX = p.getX();
float pointY = p.getY();

//rotation as radians
float cos = (float) Math.cos(rotation);
float sin = (float) Math.sin(rotation);

pointX = centerX +(pointX-centerX) * cos + (pointY-centerY) * sin;

pointY = centerY -(pointY-centerY) * cos + (pointX-centerX) * sin;

p.setPos(pointX, pointY);

}

以下是当我旋转播放器时盒子发生的情况: https://gyazo.com/ff801ce8458269c2385e24b2dc5404f5

任何帮助将不胜感激,我已经解决这个问题近一周了,结果相同。

最佳答案

问题在于您使用 pointX 的新值计算 pointY

感谢@Imus answer以便正确计算。

尝试:

float pointX = p.getX();
float pointY = p.getY();

//rotation as radians
float cos = (float) Math.cos(rotation);
float sin = (float) Math.sin(rotation);

float newPointX = centerX +(pointX-centerX) * cos + (pointY-centerY) * sin;
float newPointY = centerY +(pointY-centerY) * cos - (pointX-centerX) * sin;

p.setPos(newPointX, newPointY);

关于Java 旋转矩形产生奇怪的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48657593/

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