You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Java Applet开发:如何实现圆/椭圆四等分并为各区域填充不同颜色

如何用Java Applet将圆分成四等份并填充不同颜色?

嘿,作为Java Applet新手,你的思路方向是对的——用十字线分割圆,但原代码里有两个关键问题需要修正:一是不存在g.fillColor()这个方法,设置颜色应该用g.setColor();二是你只画了分割线,却没有填充对应的扇形区域。

要实现四等分圆并填充不同颜色,我们可以用Graphics类的fillArc()方法,它能绘制并填充指定起始角度和扫过角度的扇形,正好适合画四分之一圆。下面是修改后的完整代码:

import java.applet.*;
import java.awt.*;

/*<applet code = "Oval.class" width = 300 height = 300>
</applet>*/
public class Oval extends Applet {
    public void init() {
        // 这里可以初始化一些参数,暂时不需要额外操作
    }
    
    public void paint(Graphics g) {
        // 先画整个圆的边框(可选,方便看轮廓)
        g.drawOval(100, 100, 200, 200);
        
        // 填充第一象限(右上):起始角度0°,扫过90°
        g.setColor(Color.RED);
        g.fillArc(100, 100, 200, 200, 0, 90);
        
        // 填充第二象限(左上):起始角度90°,扫过90°
        g.setColor(Color.BLUE);
        g.fillArc(100, 100, 200, 200, 90, 90);
        
        // 填充第三象限(左下):起始角度180°,扫过90°
        g.setColor(Color.GREEN);
        g.fillArc(100, 100, 200, 200, 180, 90);
        
        // 填充第四象限(右下):起始角度270°,扫过90°
        g.setColor(Color.ORANGE);
        g.fillArc(100, 100, 200, 200, 270, 90);
        
        // 画十字分割线,放在填充之后,确保线条在最上层
        g.setColor(Color.BLACK);
        g.drawLine(100, 200, 300, 200); // 水平中线
        g.drawLine(200, 100, 200, 300); // 垂直中线
    }
}

关键代码解释:

  • fillArc(int x, int y, int width, int height, int startAngle, int arcAngle)
    • x,y:扇形所在椭圆的左上角坐标,和drawOval的参数一致
    • width,height:椭圆的宽高,这里是200x200,所以是正圆
    • startAngle:扇形的起始角度(0°对应右侧水平方向,顺时针为正方向)
    • arcAngle:扇形扫过的角度,四等分圆所以每个扇形扫过90°
  • 把分割线放在填充之后绘制,这样线条会覆盖在彩色扇形上,分割效果更明显
  • 类名改成了Oval(首字母大写,符合Java命名规范)

这样运行applet后,你就能看到一个被分成四个彩色象限的圆啦!

内容的提问来源于stack exchange,提问作者Mr. T-REX

火山引擎 最新活动