Java 调用政府方法
我不知道我是否正确地调用了一个GOval方法。我的目标是创建目标公司标志,但有5个圆圈。我应该让目标符号在窗口中居中,圆圈的数量和尺寸由命名常量控制Java 调用政府方法,java,awt,acm.graphics,Java,Awt,Acm.graphics,我不知道我是否正确地调用了一个GOval方法。我的目标是创建目标公司标志,但有5个圆圈。我应该让目标符号在窗口中居中,圆圈的数量和尺寸由命名常量控制 我从GOval bigCircle开始,这是我最外层的红色圆圈。我是否正确地合并了createFilledCircle方法 到目前为止,我只有三个圆圈,因为我们是在以前的作业的基础上完成的,而那个作业只有三个圆圈。另外,N_圈如何融入图片 import acm.program.*; import acm.graphics.*; import jav
我从GOval bigCircle开始,这是我最外层的红色圆圈。我是否正确地合并了createFilledCircle方法
到目前为止,我只有三个圆圈,因为我们是在以前的作业的基础上完成的,而那个作业只有三个圆圈。另外,N_圈如何融入图片
import acm.program.*;
import acm.graphics.*;
import java.awt.*;
public class TargetSymbol extends GraphicsProgram {
public void run(){
double x = getWidth() / 2;
double y = getHeight() / 2;
GOval bigCircle = createFilledCircle(x - OUTER_RADIUS, y - OUTER_RADIUS, 2 * OUTER_RADIUS, 2 * OUTER_RADIUS);
createFilledCircle.setFilled(true);
createFilledCircle.setColor(Color.RED);
add(createFilledCircle);
GOval middleCircle = new GOval(100, 100, 200, 200);
middleCircle.setFilled(true);
middleCircle.setColor(Color.WHITE);
add(middleCircle);
GOval innerCircle = new GOval(155, 150, 100, 100);
innerCircle.setFilled(true);
innerCircle.setColor(Color.RED);
add(innerCircle);
}
private GOval createFilledCircle(double x, double y, double r, Color color){
GOval circle = new GOval( x-r, x-y, 2 * r, 2 * r);
circle.setColor(color);
circle.setFilled(true);
return circle;
}
private static final int N_CIRCLE = 5;
private static final double OUTER_RADUS = 75;
private static final double INNER_RADIUS = 10;
我认为你的想法是对的
GOval bigCircle = createFilledCircle(x - OUTER_RADIUS, y - OUTER_RADIUS, 2 * OUTER_RADIUS, 2 * OUTER_RADIUS);
createFilledCircle.setFilled(true);
createFilledCircle.setColor(Color.RED);
没有名为createFilledCircle的变量,因此无法将其设置为填充或设置其颜色。我们可以将其更改为bigCircle,但这是多余的,因为您已经在createFilledCircle()方法中设置了这些值
我建议您将这两个部分全部去掉,剩下的是:
GOval bigCircle = createFilledCircle(x - OUTER_RADIUS, y - OUTER_RADIUS, 2 * OUTER_RADIUS, 2 * OUTER_RADIUS);
N_CIRCLE,我只能假设它代表了有多少个圆。例如,如果N_圆是5,则有红色的外圆,白色的内圆,红色的内圆,白色的内圆,等等
因此,您需要使用一个循环来创建与您拥有的圆数量(N_CIRCLE)相关的圆
e、 g
for(int a=0;a
我做了同样的作业,并使用此代码成功完成了作业。我为它的草率和糟糕的形式道歉;我第一次学习如何用Java编写时写的
/*
* File: Target.java
* Name:
* Section Leader:
* -----------------
* This file is the starter file for the Target problem.
*/
import acm.graphics.*;
import acm.program.*;
import java.awt.*;
public class Target extends GraphicsProgram {
public void run() {
/* You fill this in. */
double moveX = getWidth()/2 - 36;
double moveY = getHeight()/2 - 36;
GOval outerRed = new GOval(72, 72);
outerRed.setFilled(true);
outerRed.setColor(Color.RED);
outerRed.setFillColor(Color.RED);
outerRed.move(moveX, moveY);
GOval middleWhite = new GOval(12.6, 12.6, 46.8, 46.8);
middleWhite.setFilled(true);
middleWhite.setColor(Color.WHITE);
middleWhite.setFillColor(Color.WHITE);
middleWhite.move(moveX, moveY);
GOval innerRed = new GOval(25.2, 25.2, 21.6, 21.6);
innerRed.setFilled(true);
innerRed.setColor(Color.RED);
innerRed.setFillColor(Color.RED);
innerRed.move(moveX, moveY);
add(outerRed);
add(middleWhite);
add(innerRed);
}
}
以下是我使用常量的解决方案:
/*
* File: Target.java
* Name:
* Section Leader:
* -----------------
* This file is the starter file for the Target problem.
*/
import acm.graphics.*;
import acm.program.*;
import java.awt.*;
public class Target extends GraphicsProgram {
private static final int RADIUS_OUTER_CIRCLE = 72;
private static final int RADIUS_MID_CIRCLE = 54;
private static final int RADIUS_INNER_CIRCLE = 32;
public void run() {
GOval outerCircle = new GOval(getWidth()/2 - RADIUS_OUTER_CIRCLE/2 , getHeight()/2 - RADIUS_OUTER_CIRCLE/2, RADIUS_OUTER_CIRCLE, RADIUS_OUTER_CIRCLE);
outerCircle.setFilled(true);
outerCircle.setFillColor(Color.RED);
add(outerCircle);
GOval midCircle = new GOval(getWidth()/2 - RADIUS_MID_CIRCLE/2 , getHeight()/2 - RADIUS_MID_CIRCLE/2, RADIUS_MID_CIRCLE, RADIUS_MID_CIRCLE);
midCircle.setFilled(true);
midCircle.setFillColor(Color.WHITE);
add(midCircle);
GOval innerCircle = new GOval(getWidth()/2 - RADIUS_INNER_CIRCLE/2 , getHeight()/2 - RADIUS_INNER_CIRCLE/2, RADIUS_INNER_CIRCLE, RADIUS_INNER_CIRCLE);
innerCircle.setFilled(true);
innerCircle.setFillColor(Color.RED);
add(innerCircle);
}
}
/*
* File: Target.java
* Name:
* Section Leader:
* -----------------
* This file is the starter file for the Target problem.
*/
import acm.graphics.*;
import acm.program.*;
import java.awt.*;
public class Target extends GraphicsProgram {
private static final int RADIUS_OUTER_CIRCLE = 72;
private static final int RADIUS_MID_CIRCLE = 54;
private static final int RADIUS_INNER_CIRCLE = 32;
public void run() {
GOval outerCircle = new GOval(getWidth()/2 - RADIUS_OUTER_CIRCLE/2 , getHeight()/2 - RADIUS_OUTER_CIRCLE/2, RADIUS_OUTER_CIRCLE, RADIUS_OUTER_CIRCLE);
outerCircle.setFilled(true);
outerCircle.setFillColor(Color.RED);
add(outerCircle);
GOval midCircle = new GOval(getWidth()/2 - RADIUS_MID_CIRCLE/2 , getHeight()/2 - RADIUS_MID_CIRCLE/2, RADIUS_MID_CIRCLE, RADIUS_MID_CIRCLE);
midCircle.setFilled(true);
midCircle.setFillColor(Color.WHITE);
add(midCircle);
GOval innerCircle = new GOval(getWidth()/2 - RADIUS_INNER_CIRCLE/2 , getHeight()/2 - RADIUS_INNER_CIRCLE/2, RADIUS_INNER_CIRCLE, RADIUS_INNER_CIRCLE);
innerCircle.setFilled(true);
innerCircle.setFillColor(Color.RED);
add(innerCircle);
}
}