首页 > 解决方案 > Java中的旋转文本

问题描述

我正在为一个大学项目用 Java 创建一个命运之轮游戏。我正在努力降低图像旋转。任何帮助,将不胜感激。

这就是下面的代码显示的内容:

图片

WHEEL_COLOURS - 18 种颜色的 ArrayList

WHEEL_VALUES - 一个包含 18 个值的字符串数组,包括 Lose a Turn、500、1000 等。

角度= 20(360/18 段)

protected void paintComponent(Graphics g) {
    super.paintComponent(g);

    // draw wheel
    for (Color c : WHEEL_COLOURS) {
        g.setColor(c);
        g.fillArc(5, 15, wheelSize, wheelSize, degrees, ANGLE);
        degrees += ANGLE;
    }


    for(int i=0; i< WHEEL_VALUES.length; i++) {
        g.setColor(Color.BLACK);
        Graphics2D g2d = (Graphics2D) g;
        drawRotate(g2d, 125, 125, degrees, WHEEL_VALUES[i]);
        degrees += ANGLE;
    }

    // draw pointer
    g.setColor(Color.YELLOW);
    g.fillArc(100, 0, 40, 60, 67, 45);
    g.setColor(Color.ORANGE);
    g.drawArc(100, 0, 40, 60, 67, 45);

}

public static void drawRotate(Graphics2D g2d, double x, double y, int angle, String text) 
{    
    g2d.translate((float)x,(float)y);
    g2d.rotate(Math.toRadians(angle));
    g2d.drawString(text,0,0);
    g2d.rotate(-Math.toRadians(angle));
    g2d.translate(-(float)x,-(float)y);
}   

标签: javaswingawtgraphics2dimage-rotation

解决方案


推荐阅读