gpt4 book ai didi

java - 如何使物体绕其中心旋转90度?

转载 作者:行者123 更新时间:2023-12-01 15:40:23 26 4
gpt4 key购买 nike

我正在尝试为我的下落物体(复合形状)设置旋转,以便每次围绕中心点按下按键时它都会旋转 90 度。我想使用 java.awt.Point 库将复合形状的其中一个指定为“旋转中心”,然后使用 .Point 位置作为点的先前位置,然后设置新的 x 和 y 位置...然后以某种方式设置新位置的新坐标。

我对编程还很陌生。很多时候,我会理解我需要做的事情背后的理论,但对如何实际实现它感到非常困惑。

任何人都可以帮忙举一个关于如何轮换组合的一般示例吗?围绕中心的形状?

最佳答案

无需深入了解 java Point 实现,总体概念非常简单。

首先,您需要变换所有形状点,使形状的中心位于 (0,0)。例如,如果中心 (Cx, Cy) 且其中一个点是 (Px, Py),则新点应为 NewP = (Px - Cx, Py - Cy)。现在,在所有点都转换之后,您应该对每个点执行以下操作。假设您想顺时针旋转 90 度(查看下面的链接以了解如何进行其他旋转):旋转P = (-NewPy, NewPx)

旋转后,您应该将点变换回原来的位置:FinalP = (RotatedPx - NewPx, RotatedPy - NewPy)。

一些伪代码:

Point p;
Center center;

Point relativePoint = p - center;

// For 90deg CW: -y, x
// For 90deg CC: y, -x
Point rotatedPoint = new Point(-1 * relativePoint.Y, relativePoint.X); // 90deg CW
Point finalPoint = rotatedPoint + center;

只要阅读一些有关变换和旋转的内容,您就应该非常清楚了: Rotations - 只读第一部分(二维旋转)

关于java - 如何使物体绕其中心旋转90度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8147386/

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