Java - 在 Graphics2D 中获取新的旋转点

标签 java rotation 2d rendering collision

我需要获取新的旋转点才能知道物体的真实位置和尺寸,例如:

Example 01 .

我的应用程序的上下文是渲染 2D 图形,其主要内容如下:

    protected void paintComponent(Graphics g) {
        ...

        g2d.rotate(Test.angle * Math.PI / 180, Test.hero, Test.heroY); 
        g2d.drawImage(Main.hero, Test.hero - 15, Test.heroY - 15, this);
        ...

图像绘制正确,但我无法获取新点。

最佳答案

double angle = ang * Math.PI / 180;
double sin = Math.sin(angle);
double cos = Math.cos(angle);       

double a = (centerX + ray) - x0;
double b = centerY - y0;
int xx = (int) (a * cos - b * -sin + x0);
int yy = (int) (a * -sin + b * cos + y0);

ang++;

它将围绕 centerX 和 centerY 在这些原点的 +ray 中旋转一个点,代码已经过测试并且可以从所有角度工作。

关于Java - 在 Graphics2D 中获取新的旋转点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43659968/

相关文章:

javascript - 使用 Javascript 以指数方式旋转 PNG

java - 返回二维数组

javascript - 三.js增加局部物体旋转

java - 如何根据二维网格上的路径为线条设置不同的颜色

algorithm - 检测一个点相对于其他两个点的位置

java - 使用 SDK 12 和兼容性库的 Eclipse 导出签名 APK 失败

java - IntelliJ IDEA 无法解析 spring 导入的文件

Java cardLayout 错误的父级

java - 键盘操作事件在 JavaFX 中不起作用

android - libstreaming - 如何旋转流媒体视频?