java如何画弧线
使用 Graphics2D 绘制弧线
在 Java 中,可以通过 Graphics2D 类的 drawArc 或 draw 方法绘制弧线。以下是两种常见方法:
方法一:使用 drawArc
import java.awt.*;
import javax.swing.*;
public class DrawArcExample extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.BLUE);
// 参数:x, y, width, height, startAngle, arcAngle
g2d.drawArc(50, 50, 100, 100, 0, 90); // 绘制从0度到90度的弧线
}
public static void main(String[] args) {
JFrame frame = new JFrame("Arc Drawing Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new DrawArcExample());
frame.setSize(300, 300);
frame.setVisible(true);
}
}
方法二:使用 draw 和 Arc2D

import java.awt.*;
import java.awt.geom.Arc2D;
import javax.swing.*;
public class DrawArc2DExample extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.RED);
// 创建 Arc2D 对象(弧线类型为 OPEN)
Arc2D arc = new Arc2D.Double(50, 50, 100, 100, 45, 135, Arc2D.OPEN);
g2d.draw(arc);
}
public static void main(String[] args) {
JFrame frame = new JFrame("Arc2D Drawing Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new DrawArc2DExample());
frame.setSize(300, 300);
frame.setVisible(true);
}
}
参数说明
-
drawArc参数:x,y:弧线外接矩形的左上角坐标。width,height:外接矩形的宽高。startAngle:起始角度(0度为3点钟方向,逆时针为正)。arcAngle:弧线跨越的角度(正值为逆时针,负值为顺时针)。
-
Arc2D类型:
Arc2D.OPEN:仅绘制弧线(不闭合)。Arc2D.CHORD:弧线两端用直线闭合(形成扇形)。Arc2D.PIE:弧线两端连接到圆心(形成饼图)。
自定义弧线样式
通过 Graphics2D 可以设置线条粗细、抗锯齿等效果:
g2d.setStroke(new BasicStroke(3)); // 设置线条宽度为3像素
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); // 开启抗锯齿
动态绘制弧线
结合动画或用户输入动态调整弧线角度:
int currentAngle = 0;
// 在动画循环中更新角度并重绘
currentAngle += 5;
repaint();






