Почему g2d. Повернуть на 90 градусов, а не точно на 90 градусов? ДЖАВА - PullRequest
3 голосов
/ 22 мая 2011

Привет, я пытаюсь создать круговой текст.Мне удалось как-то сделать это за цикл каждого повернутого персонажа.Но я до сих пор не понимаю.Я не понимаю углов.Может ли кто-нибудь дать мне хорошее объяснение?Как в следующем коде, почему не совсем 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);

Мой первый пост.Надеюсь, я не сделал никаких ошибок.Спасибо

1 Ответ

4 голосов
/ 22 мая 2011

Вы хотите повернуть на 90 градусов, но rotate принимает радианы - так что ваше преобразование неправильное.Вы конвертируете 90 радианов в градусы, а затем передаете их во что-то, что ожидает радианы :) Попробуйте это:

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