为什么g2d旋转到90度而不是90度?JAVA

为什么g2d旋转到90度而不是90度?JAVA,java,text,rotation,Java,Text,Rotation,嗨,我正在尝试创建一个循环文本。我设法做到这一点,通过循环每个旋转的字符。但我还是不明白。我不懂角度。有人能给我一个好的解释吗?就像下面的代码,为什么a不是90度?但是在100到120之间 Graphics2D g2d = (Graphics2D)g; AffineTransform xform1, cxform; xform1 = AffineTransform.getTranslateInstance(200,200); g2d.setTransform(xform1

嗨,我正在尝试创建一个循环文本。我设法做到这一点,通过循环每个旋转的字符。但我还是不明白。我不懂角度。有人能给我一个好的解释吗?就像下面的代码,为什么a不是90度?但是在100到120之间

Graphics2D g2d = (Graphics2D)g;
    AffineTransform xform1, cxform;
    xform1 = AffineTransform.getTranslateInstance(200,200);
    g2d.setTransform(xform1);
    g2d.drawLine(0, -20, 0, 20);
    g2d.drawLine(-20, 0, 20, 0);
    xform1.rotate(Math.toDegrees(90));
    g2d.setTransform(xform1);
    g2d.drawString("a", 0, 20);
我的第一篇文章。希望我没有犯任何错误。
谢谢

您希望旋转90度,但需要弧度-因此您的转换是错误的。将90弧度转换为度,然后将其传递给期望弧度的对象:)尝试以下操作:

xform1.rotate(Math.toRadians(90));

请注意,由于90°的弧度为π/2,因此要获得准确的值完全是运气不好的:p@Voo:实际上,这里后台使用的仿射Transform类,因此使用pi/2就足够了。