whyヾっ 发表于 2013-9-22 20:35:31

奥运五环!!!!

本帖最后由 百日维新 于 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-22 20:35:32

本帖最后由 565123 于 2013-9-24 22:42 编辑

不要叫我师兄啦,我也才高三

其实我看到你的问题,才知道有acm这个包呢

其实Arc就是弧度的意思

让十个弧绕同一个点,每次半径增加一,这样就是一个有厚度的园了

另外,最后还要重写一次被覆盖的部分
※附上acm源代码,里面有详细的注释

※我平常只是小打小闹,没有写注释的习惯,抱歉了

最后希望能够获选最佳!!

565123 发表于 2013-9-22 22:40:24

本帖最后由 565123 于 2013-9-22 22:42 编辑

白色部分改成传递 new Color(0, true) ,将透明度设置为零

whyヾっ 发表于 2013-9-23 10:34:46

565123 发表于 2013-9-22 22:40 static/image/common/back.gif
白色部分改成传递 new Color(0, true) ,将透明度设置为零

改了之后   外圆的填充背景颜色将会把内圆里面填充了 还是不行啊!!

565123 发表于 2013-9-23 21:03:20

没办法,GOval只能是实心的

whyヾっ 发表于 2013-9-23 21:14:40

565123 发表于 2013-9-23 21:03 static/image/common/back.gif
没办法,GOval只能是实心的

那希望师兄有其他的方法帮我写一个行不行

565123 发表于 2013-9-23 21:26:06

本帖最后由 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:34:40

本帖最后由 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);
        }
}终于写出真正的奥运五环了!!!

c270844905 发表于 2013-9-24 12:30:13

{:5_103:} 看起来好像很牛13,学习学习。

whyヾっ 发表于 2013-9-24 18:16:45

565123 发表于 2013-9-23 22:34 static/image/common/back.gif
终于写出真正的奥运五环了!!!

非常感谢师兄、遗憾的是没有写注释 我是刚刚自学Java 理解起来稍稍有点难度!希望我能够加师兄的扣扣 以后有问题能够请教你了

玉宁417 发表于 2013-9-25 10:18:20

新人,来看学习的

玉宁417 发表于 2013-9-25 10:20:56

鱼币太难得了

whyヾっ 发表于 2013-9-25 12:30:17

565123 发表于 2013-9-24 22:29 static/image/common/back.gif
不要叫我师兄啦,我也才高三

其实我看到你的问题,才知道有acm这个包呢


真实太感谢你了 我都大二了 如今才这么点知识。下来我认真看了 理解了 没事 加个扣 以后可以交流交流哈心得吗

林黛玉的葬礼 发表于 2013-9-25 20:43:09

好漂亮的说,以后也得试试

565123 发表于 2013-9-25 22:03:05

whyヾっ 发表于 2013-9-25 12:30 static/image/common/back.gif
真实太感谢你了 我都大二了 如今才这么点知识。下来我认真看了 理解了 没事 加个扣 以后可以交流交流哈心 ...

什么‘扣’??

希望选最佳(在我的留言下方)

whyヾっ 发表于 2013-9-25 22:28:15

565123 发表于 2013-9-25 22:03 static/image/common/back.gif
什么‘扣’??

希望选最佳(在我的留言下方)

就是qq号,我加你吗 以后可以多多交流哒嘛

565123 发表于 2013-9-25 22:53:03

没有在用,我在台湾都用facebook,不过你们应该不能用吧

whyヾっ 发表于 2013-9-26 10:32:14

565123 发表于 2013-9-25 22:53 static/image/common/back.gif
没有在用,我在台湾都用facebook,不过你们应该不能用吧

对的 我们内地基本上都是用的qq、微博等等 我要去申请个Facebook 号,

tsembrace 发表于 2013-9-27 17:27:05

这个板块新开的?偶也刚学Java~

565123 发表于 2013-9-27 21:19:16

可以设为最佳吗??拜托!
页: [1] 2
查看完整版本: 奥运五环!!!!