我正在尝试使用GraphicsProgram创建三个不同颜色的同心圆。但是,这些圆永远不会是同心的。它们似乎在彼此的侧面上被推开,好像试图显示另一个尺寸。我只是创建并添加GOval对象。可能是我缺少了一些东西。有没有办法设置圈子的透明度?

在下面添加代码:

import acm.graphics.*;
import acm.program.*;
import java.awt.*;

public class Target extends GraphicsProgram {

    final static double radiusOuterCircle = 72.0;
    final static double radiusMiddleCircle = 47.0;
    final static double radiusInnerCircle = 22.0;


    public void run() {


        final double centerX = this.getWidth() / 2.0;
        final double centerY = this.getHeight() / 2.0;


        GOval g = makeCircle(centerX, centerY,radiusOuterCircle , Color.RED);
        add(g);


        g = makeCircle(centerX, centerY,radiusMiddleCircle , Color.WHITE);
        add(g);


        g = makeCircle(centerX, centerY,radiusInnerCircle , Color.RED);
        add(g);


    }



    private GOval makeCircle(double centerX, double centerY, double radius, Color color)
    {

        GOval g = new GOval(centerX, centerY, radius, radius);
        g.setFillColor(color);
        g.setFilled(true);

        return g;

    }
}

最佳答案

根据manual,四个参数GOval构造函数的前两个参数是边界框左上角的坐标。

关于java - 使用GraphicsProgram创建重叠的GOval对象的程序出现了什么错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8948288/

10-09 03:49