奥运五环!!!!
本帖最后由 百日维新 于 2014-8-17 16:48 编辑package acmDemo;
import java.awt.Color;
import java.lang.ProcessBuilder.Redirect;
import javax.swing.plaf.ColorUIResource;
import org.omg.CosNaming.NamingContextExtPackage.AddressHelper;
import acm.graphics.GOval;
import acm.program.GraphicsProgram;
public class ovalDemo extends GraphicsProgram{
public void run(){
GOval oval = new GOval(120, 120);
add(oval,150,180);
oval.setFilled(true);
oval.setFillColor(Color.blue);
GOval inOval = new GOval(100,100);
add(inOval,160,190);
inOval.setFilled(true);
inOval.setFillColor(Color.white);
GOval oval1 = new GOval(120, 120);
add(oval1,280,180);
oval1.setFilled(true);
oval1.setFillColor(Color.black);
GOval inOval2 = new GOval(100,100);
add(inOval2,290,190);
inOval2.setFilled(true);
inOval2.setFillColor(Color.white);
GOval oval2 = new GOval(120, 120);
add(oval2,410,180);
oval2.setFilled(true);
oval2.setFillColor(Color.red);
GOval inOval3 = new GOval(100, 100);
add(inOval3,420,190);
inOval3.setFilled(true);
inOval3.setFillColor(Color.white);
GOval oval3 = new GOval(120, 120);
add(oval3,210,250);
oval3.setFilled(true);
oval3.setFillColor(Color.orange);
GOval inOval4 =new GOval(100,100);
add(inOval4,220,260);
inOval4.setFilled(true);
inOval4.setFillColor(Color.white);
GOval oval5 = new GOval(120,120);
add(oval5,340,250);
oval5.setFilled(true);
oval5.setFillColor(Color.green);
GOval inOval5 = new GOval(100, 100);
add(inOval5,350,260);
inOval5.setFilled(true);
inOval5.setFillColor(Color.white);
}
public void init(){
this.setSize(800,600);
}
}
这样写得奥运五环求大神看看有木有改进的算法,而且还是需要GOval类实现
本帖最后由 565123 于 2013-9-24 22:42 编辑
不要叫我师兄啦,我也才高三
其实我看到你的问题,才知道有acm这个包呢
其实Arc就是弧度的意思
让十个弧绕同一个点,每次半径增加一,这样就是一个有厚度的园了
另外,最后还要重写一次被覆盖的部分
※附上acm源代码,里面有详细的注释
※我平常只是小打小闹,没有写注释的习惯,抱歉了
最后希望能够获选最佳!!
本帖最后由 565123 于 2013-9-22 22:42 编辑
白色部分改成传递 new Color(0, true) ,将透明度设置为零 565123 发表于 2013-9-22 22:40 static/image/common/back.gif
白色部分改成传递 new Color(0, true) ,将透明度设置为零
改了之后 外圆的填充背景颜色将会把内圆里面填充了 还是不行啊!! 没办法,GOval只能是实心的 565123 发表于 2013-9-23 21:03 static/image/common/back.gif
没办法,GOval只能是实心的
那希望师兄有其他的方法帮我写一个行不行
本帖最后由 565123 于 2013-9-23 21:27 编辑
发现这种方法
for (int i = 0; i < 10; i++) {
GArc arc = new GArc(100 + i, 100 + i, 100 - (i << 1),
100 - (i << 1), 0, 360);
arc.setColor(Color.RED);
add(arc);
}
本帖最后由 565123 于 2013-9-23 22:37 编辑
package acmDemo;
import java.awt.Color;
import acm.graphics.GArc;
import acm.program.GraphicsProgram;
public class ovalDemo extends GraphicsProgram {
private static final long serialVersionUID = 7367209568284450456L;
public void run() {
createArc(150, 180, Color.BLUE);
createArc(280, 180, Color.BLACK);
createArc(410, 180, Color.RED);
createArc(215, 240, Color.ORANGE);
createArc(345, 240, Color.GREEN);
createArc(150, 180, Color.BLUE, -20, 45);
createArc(280, 180, Color.BLACK, 200, 70);
createArc(280, 180, Color.BLACK, -20, 45);
createArc(410, 180, Color.RED, 200, 70);
}
private void createArc(double x, double y, Color color) {
createArc(x, y, color, 0, 360);
}
private void createArc(double x, double y, Color color,double start, double sweep){
for (int i = 0; i < 10; i++) {
GArc arc = new GArc(x + i, y + i, 120 - (i << 1),
120 - (i << 1), start, sweep);
arc.setColor(color);
add(arc);
}
}
public void init() {
this.setSize(800, 600);
}
}终于写出真正的奥运五环了!!! {:5_103:} 看起来好像很牛13,学习学习。 565123 发表于 2013-9-23 22:34 static/image/common/back.gif
终于写出真正的奥运五环了!!!
非常感谢师兄、遗憾的是没有写注释 我是刚刚自学Java 理解起来稍稍有点难度!希望我能够加师兄的扣扣 以后有问题能够请教你了 新人,来看学习的 鱼币太难得了 565123 发表于 2013-9-24 22:29 static/image/common/back.gif
不要叫我师兄啦,我也才高三
其实我看到你的问题,才知道有acm这个包呢
真实太感谢你了 我都大二了 如今才这么点知识。下来我认真看了 理解了 没事 加个扣 以后可以交流交流哈心得吗 好漂亮的说,以后也得试试 whyヾっ 发表于 2013-9-25 12:30 static/image/common/back.gif
真实太感谢你了 我都大二了 如今才这么点知识。下来我认真看了 理解了 没事 加个扣 以后可以交流交流哈心 ...
什么‘扣’??
希望选最佳(在我的留言下方) 565123 发表于 2013-9-25 22:03 static/image/common/back.gif
什么‘扣’??
希望选最佳(在我的留言下方)
就是qq号,我加你吗 以后可以多多交流哒嘛 没有在用,我在台湾都用facebook,不过你们应该不能用吧 565123 发表于 2013-9-25 22:53 static/image/common/back.gif
没有在用,我在台湾都用facebook,不过你们应该不能用吧
对的 我们内地基本上都是用的qq、微博等等 我要去申请个Facebook 号, 这个板块新开的?偶也刚学Java~ 可以设为最佳吗??拜托!
页:
[1]
2