私はこのコードを使用してJavaで円弧を描画しようとしています:
g.fillArc(50, 50, 100, 100, 0, 180)
ここで、gはグラフィックスオブジェクトです。
これにより、以下の青いオブジェクトが生成されます。
私が実際にやろうとしているのは、次のようなものを作成することです。
助けてくれてありがとう!
g.fillArc(50, 50, 100, 100, 180, 180)
代わりに試してください。
基本的に、最初の角度は開始位置で、2 番目の角度は (開始からの) 弧を描く角度です。
したがって、5 度のパイ スリップが必要な場合は、次のようなものを使用します。g.fillArc(50, 50, 100, 100, 0, 5)
詳細についてはGraphics#fillArc
、Graphics2Dを参照してください。
実施例
public class PaintTest03 {
public static void main(String[] args) {
new PaintTest03();
}
public PaintTest03() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException ex) {
} catch (InstantiationException ex) {
} catch (IllegalAccessException ex) {
} catch (UnsupportedLookAndFeelException ex) {
}
JFrame frame = new JFrame("Test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
frame.add(new PaintPane());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
public class PaintPane extends JPanel {
@Override
public Dimension getPreferredSize() {
return new Dimension(100, 100);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.RED);
g.fillArc(0, 0, 100, 100, 180, 180);
}
}
}