Текстовый угол графика Java

что вы делаете, чтобы заставить строку поворачивать. (но не постоянно вращаясь, под углом)? Я попытался использовать Graphics2D но не смог найти способ для вращения. или потребуется ручное вращение? Также, если это проще, я могу использовать LWJGL, но на данный момент я не испытываю эту библиотеку. Благодарю.

1 ответ

Там можно сделать несколько способов.

В этом примере просто используйте AffineTransform чтобы изменить способ рисования графики...

import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class AngleText {

 public static void main(String[] args) {
 new AngleText();
 }

 public AngleText() {
 EventQueue.invokeLater(new Runnable() {
 @Override
 public void run() {
 try {
 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
 } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
 ex.printStackTrace();
 }

 JFrame frame = new JFrame("Testing");
 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 frame.add(new TestPane());
 frame.pack();
 frame.setLocationRelativeTo(null);
 frame.setVisible(true);
 }
 });
 }

 public class TestPane extends JPanel {

 public TestPane() {
 }

 @Override
 public Dimension getPreferredSize() {
 return new Dimension(200, 200);
 }

 @Override
 protected void paintComponent(Graphics g) {
 super.paintComponent(g);
 Graphics2D g2d = (Graphics2D) g.create();
 String text = "I don't see the problem";
 FontMetrics fm = g2d.getFontMetrics();
 int x = (getWidth() - fm.stringWidth(text)) / 2;
 int y = ((getHeight() - fm.getHeight()) / 2) + fm.getDescent();
 g2d.setTransform(AffineTransform.getRotateInstance(Math.toRadians(45), getWidth() / 2, getHeight() / 2));
 g2d.drawString(text, x, y);
 g2d.dispose();
 }

 }

}

Для получения более подробной информации вы можете взглянуть на " Преобразование фигур, текста и изображений"

licensed under cc by-sa 3.0 with attribution.