2021年1月17日 星期日

week07_鄭皓文

           今天不做遊戲,今天咱要用這軟體畫圖,聽起來也不是很難,先從最簡單的三角形開始:

感覺有點像老DVD的播放鍵

程式碼如下:

size(500,500);
beginShape();
for(int angle=0; angle<360; angle+=120)
{
    float angle2 = radians(angle);
    float x = 100+cos(angle2)*50;
    float y = 100+sin(angle2)*50;
    vertex(x,y);
}

endShape(CLOSE);

接下來要做的是讓他旋轉起來,也不難:

莫名酷炫,感覺搓出了法陣

void setup()

{

  size(200, 200);

}

void draw()

{

  beginShape();

  for(int angle=0; angle<360; angle+=120)

  {

     float angle2 = radians(angle+mouseX);

     float x = 100+cos(angle2)*50;

     float y = 100+sin(angle2)*50;

     vertex(x,y);

  }

  endShape(CLOSE);

}

其實還可以做出更酷炫的版本,直接讓三角形隨滑鼠移動而轉動,並留下殘影:

有點像紙牌遊戲

程式碼如下:

void setup()

{

  size(800, 600);

}

void draw()

{

  beginShape();

  for(int angle=0; angle<360; angle+=120)

  {

     float angle2 = radians(angle+mouseX);

     float x = mouseX+cos(angle2)*50;

     float y = mouseY+sin(angle2)*50;

     vertex(x,y);

  }

  endShape(CLOSE);

} 

接下來是加分題,注意我是在朋友幫助下寫出這題的,放在這裡僅作存檔之用,所以請不要計分

int A=30;

void setup()

{

  size(500, 500);

}

 

void draw() {

  for (int x1=25; x1<=475; x1+=45)

  {

    for (int y1=25; y1<=475; y1+=45)

    {

      beginShape();

       if(y1%2==0)

       {

          if(x1%2==0)

          {

            A=20;

            stroke(0,0,0);

          }

          else

          {

            A=40;

            stroke(255,0,0);

          }

        }

        else

        {

          if(x1%2==0)

          {

            A=30;

            stroke(255,0,0);

          }

          else

          {

            A=30;

            stroke(0,0,0);

          }

        }       

      for (int angle=0; angle<360; angle+=120)

      {

        float angle2 = radians(angle+A);

        float x2 = x1+cos(angle2)*20;

        float y2 = y1+sin(angle2)*20;

        vertex(x2, y2); 

      }

      endShape(CLOSE);

      beginShape();

      for (int angle=0; angle<360; angle+=120)

      {

        if(y1%2==0)

        {

          if(x1%2==0) A=20;

          else A=40;

        }

        else A=30;

       

        float angle2 = radians(angle+A);

        float x2 = x1+cos(angle2)*12;

        float y2 = y1+sin(angle2)*12;

        vertex(x2, y2);

      }

      endShape(CLOSE);

      beginShape();

      for (int angle=0; angle<360; angle+=120)

      {

        if(y1%2==0)

        {

          if(x1%2==0) A=20;

          else A=40;

        }

        else A=30;

       

        float angle2 = radians(angle+A);

        float x2 = x1+cos(angle2)*4;

        float y2 = y1+sin(angle2)*4;

        vertex(x2, y2);

      }

      endShape(CLOSE);

    }

  }

}








沒有留言:

張貼留言