2020年10月28日 星期三

🗿Week07 (期中作業)



畫出圓



size(500,500);
for(int angle=0;angle<360;angle+=30){
  float angle2 = radians(angle); ///弧度
  float x = 100+cos(angle2)*50;
  float y = 100+sin(angle2)*50;
  ellipse(x,y,2,2); //劃出點 大小(2,2)
} 



利用三角函數畫三角形


程式碼:
size(500,500);
beginShape();
for(int angle=0;angle<360;angle+=120){ ///加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(500,500);
}
void draw(){
  //background(255);//清畫面
  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(500,500);
}
void draw(){
  ///background(255);//清畫面
  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);
}


三角形自己旋轉,滑鼠可以移動它


*1sec = 60frame
程式碼:
void setup(){
  size(500,500);
}
void draw(){
  ///background(255);//清畫面
  beginShape();
  for(int angle=0;angle<360;angle+=120){
    float angle2 = radians(angle+frameCount); ///frameCount=螢幕每秒會跑60次
    float x = mouseX+cos(angle2)*100;
    float y = mouseY+sin(angle2)*100;
    vertex(x,y);
  }
  endShape(CLOSE);
}


接水果遊戲


程式碼:
float [] fruitX=new float[10];
float [] fruitY=new float[10];
float kidX=150,kidY=450;
int score=0;
void setup(){
  size(500,500);
  for(int i=0;i<10;i++){
    fruitX[i] = random(50,450);
    fruitY[i] = -i*100;
   }
}
void draw(){
  background(255);
  rect(kidX,kidY,80,80);
  kidX=mouseX;
  for(int i=0;i<10;i++){
    ellipse(fruitX[i],fruitY[i],60,80);
    fruitY[i]++;
    if(fruitY[i]>kidY){///水果掉夠低
      if(kidX<fruitX[i] && fruitX[i]<kidX+80){///接到水果
        score+=10;///接住了就加分
        fruitY[i]=0;  fruitX[i]=random(50,450);///水果重生
      }else{
        fruitY[i]=0; fruitX[i]=random(50,450);///沒接住,水果重生
      }
    }
  }
}

_______________________________________________________________________

PImage pic;
PImage car;
PImage bg;
PImage die;
float [] picX=new float[10];
float [] picY=new float[10];
float carX=150, carY=450;
int score=0;

void setup() {
  size(513, 615);
  for (int i=0; i<10; i++) {
    picX[i] = random(70, 295);
    picY[i] = -i*100;
    picY[i]--;
  }
  pic = loadImage("pic.png");///三角椎
  car = loadImage("car.png");
  bg = loadImage("bg.png");
  die =loadImage("die.png");
}

void draw() {
  image(bg, 0, 0, 513, 615);
  //background(255);
  image(car, carX, carY, 100, 100);
  carX=mouseX;

  for (int i=0; i<7; i++) {
    image(pic, picX[i], picY[i], 150, 170);
    picY[i]+=1;
    /*if(picY[i]>carY){///三角錐掉夠低
     if(carX<picX[i] && picX[i]<carX+80){///接到三角錐
     score+=10;///接住了就扣分
     picY[i]=0;  picX[i]=random(70,455);///三角錐重生
     }else{
     picY[i]=0; picX[i]=random(70,455);///沒接住,三角錐重生
     }
     }
     */
    if (picY[i]>615)
    {
      picY[i]=-183;  
      picX[i]=random(70, 295);///三角錐重生
    }
    if (picY[i]>carY) {
      if (carX<picX[i] && picX[i]<carX+100) {///車碰到三角錐
        image(die, 0, 0, 513, 615);
      }
    }
  }
}














PImage pic;
PImage car;
PImage bg;
PImage die;
PImage heart;
float [] picX=new float[10];
float [] picY=new float[10];
float carX=150, carY=450;
int score=50;
int h=0;

void setup() {

  size(513, 615);
  for (int i=0; i<10; i++) {
    picX[i] = random(70, 295);
    picY[i] = -i*100;
  }
  pic = loadImage("pic.png");///三角椎
  car = loadImage("car.png");
  bg = loadImage("bg.png");
  die =loadImage("die.png");
}

void draw() {
  if (h==0) {
    image(bg, 0, 0, 513, 615);
    //background(255);
    carX=mouseX-47;
    image(car, carX, carY, 50, 100);



    for (int i=0; i<7; i++) {
      image(pic, picX[i], picY[i], 60, 60);
      picY[i]+=2;
      if (picY[i]>615)
      {
        picY[i]=-183;  
        picX[i]=random(70, 295);///三角錐重生
      }
      if (picY[i]+60>carY) {
        if (carX<picX[i]+58 && picX[i]<carX+48) //2cm
        {///車碰到三角錐
          score-=10;
         picY[i]=-150;
        }
      }
    }
    textSize(50);
    text(score,50, 100);
  }
  if (score==0)
  {
    h=1;
    image(die, -35, 100, 600, 350);
  }
}
void keyPressed() {
  if (keyCode == ENTER)
  {
    h=0;
    score=50;
  }
}

______________________________________________

2020年10月27日 星期二

𝔍𝔒𝔗𝔇-week7

 今天進度:

1.產生三角形

2.改角度位置

3.改成會互動的圖形

4.會跟著鼠標移動的圖形

5.會自轉的圖形

6.接水果


1.

程式碼:

//triangle(50,0, 0, 90 , 100,90);


size(500,500);

for(int angle=0; angle<360; angle+=120)  //角度從0度開始,角度需小於360度,每次加120度

{

  float angle2 = radians(angle); //角度2等於角度的弧度

  float x = 100+cos(angle2) * 50;//cos(角度)*半徑

  float y = 100+sin(angle2) * 50;//sin(角度)*半徑

  ellipse( x, y, 2, 2); //畫2*2圓

}


執行結果:


↑產生三角形
↑產生圓形


2.
程式碼:

//triangle(50,0, 0, 90 , 100,90);

size(500,500);
beginShape();
for(int angle=0; angle<360; angle+=30)
{
  float angle2 = radians(angle);
  float x = 100+cos(angle2) * 50;
  float y = 100+sin(angle2) * 50;
  vertex(x,y);//ellipse( x, y, 2, 2);//產生頂點(x,y)
}
endShape();
執行結果:

↑產生12邊形(最後一邊未有黑線)
↑endShape內加入CLOSE可以完成圖形黑邊



3.
程式碼:
void setup()
{
  size(500,500);
}
void draw()
{
  beginShape();
  for(int angle=0; angle<360; angle+=145)
  {
    float angle2 = radians(angle+mouseX);//角度2隨著角度加滑鼠x座標改變弧度
    float x = 100+cos(angle2) * 50;
    float y = 100+sin(angle2) * 50;
    vertex(x,y);//ellipse( x, y, 2, 2);
  }
  endShape(CLOSE);
}


執行結果:

↑會轉動的等腰三角形





4.
程式碼:
void setup()
{
  size(500,500);
}
void draw()
{
  beginShape();
  for(int angle=0; angle<360; angle+=145)
  {
    float angle2 = radians(angle+mouseX);//角度2隨著角度加滑鼠x座標改變弧度
    float x = mouseX+cos(angle2) * 50;//x隨滑鼠x座標加角度2改變
    float y = mouseY+sin(angle2) * 50;//y隨滑鼠y座標加角度2改變
    vertex(x,y);//ellipse( x, y, 2, 2);
  }
  endShape(CLOSE);
}


執行結果:


5.
程式碼:
void setup()
{
  size(500,500);
}
void draw()
{
  beginShape();
  for(int angle=0; angle<360; angle+=145)
  {
    float angle2 = radians(angle+frameCount);//角度2隨著角度加幀數而改變
    float x = mouseX+cos(angle2) * 50;//x隨滑鼠x座標加角度2改變
    float y = mouseY+sin(angle2) * 50;//y隨滑鼠y座標加角度2改變
    vertex(x,y);//ellipse( x, y, 2, 2);
  }
  endShape(CLOSE);
}
frameCount一秒鐘轉60次
執行結果:





6.
程式碼:
float fruitX=150, fruitY=0;
float kidX=150, kidY=450;
int score=0;
void setup()
{
  size(500,500);
}
void draw()
{
  background(255);
  rect(kidX, kidY, 50, 80);
  kidX=mouseX;
  ellipse(fruitX, fruitY, 60 , 80);
  fruitY++;
  if(fruitY>kidY)
  {
    if(kidX< fruitX && fruitX < kidX+80)//如果水果在籃子的範圍內會執行以下動作
    {
      score+=10;
      fruitY=0; fruitX=random(50,450);
    }
    else//水果超過籃子的範圍
    {
      fruitY=0; fruitX=random(50,450);//水果重生
    }  
  }
   
}
執行結果:

程式碼:
float [] fruitX = new float[10];
float [] fruitY = new float[10];
float kidX=150, kidY=450;
int score=0;
void setup()
{
  size(500,500);
  for(int i=0; i<10; i++)
  {
    fruitX[i] = random(50,450);
    fruitY[i] = -i*100;
  }
}
void draw()
{
  background(255);
  rect(kidX, kidY, 50, 80);
  kidX=mouseX;
  for(int i=0; i<10; i++)//掉下許多水果
  {
    ellipse(fruitX[i], fruitY[i], 60 , 80);
    fruitY[i]++;
  if(fruitY[i]>kidY)
  {
    if(kidX< fruitX[i] && fruitX[i] < kidX+80)
    {
      score+=10;
      fruitY[i]=0; fruitX[i]=random(50,450);
    }
    else
    {
      fruitY[i]=0; fruitX[i]=random(50,450);
    }  
  }
  }
   
}

執行結果:



2020年10月26日 星期一

(╯°□°)╯︵ ┻━┻week7

今天上課教,用程式來進行藝術創作。首先我們要先用一個圖形先進行改變,我們利用


國中教過的三角函數就能畫圖。

之後呢我們可以加上滑鼠座標,讓我們的圖可以跟著滑鼠移動。我們也可以改變圖形的大小,還有它的顏色。



WEEK-7

 Processing

畫三角:


void setup(){
  size(500,500);
}
void draw(){
  //background(0);
  beginShape();
  for(int angle=0; angle<360; angle+=120){
    float angle2 = radians(angle+frameCount);
    float x = mouseX+cos(angle2)*30;
    float y = mouseY+sin(angle2)*30;
    vertex(x,y);
  }
  endShape(CLOSE);
}





week07-畫三角形

week07


*用點畫出圓*



程式碼:
size(500,500);
for(int angle=0;angle<360;angle+=30){
  float angle2 = radians(angle);
  float x = 100+cos(angle2)*50;
  float y = 100+sin(angle2)*50;
  ellipse(x,y,2,2);
}
 


*利用三角函數畫三角形*


程式碼:
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(500,500);
}
void draw(){
  //background(255);//清畫面
  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(500,500);
}
void draw(){
  ///background(255);//清畫面
  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);
}
*三角形會自己旋轉,滑鼠可以移動它*
*1sec = 60frame
程式碼:
void setup(){
  size(500,500);
}
void draw(){
  ///background(255);//清畫面
  beginShape();
  for(int angle=0;angle<360;angle+=120){
    float angle2 = radians(angle+frameCount);
    float x = mouseX+cos(angle2)*100;
    float y = mouseY+sin(angle2)*100;
    vertex(x,y);
  }
  endShape(CLOSE);
}
*接水果遊戲*
程式碼:
float [] fruitX=new float[10];
float [] fruitY=new float[10];
float kidX=150,kidY=450;
int score=0;
void setup(){
  size(500,500);
  for(int i=0;i<10;i++){
    fruitX[i] = random(50,450);
    fruitY[i] = -i*100;
   }
}
void draw(){
  background(255);
  rect(kidX,kidY,80,80);
  kidX=mouseX;
  for(int i=0;i<10;i++){
    ellipse(fruitX[i],fruitY[i],60,80);
    fruitY[i]++;
    if(fruitY[i]>kidY){///水果掉夠低
      if(kidX<fruitX[i] && fruitX[i]<kidX+80){///接到水果
        score+=10;///接住了就加分
        fruitY[i]=0;  fruitX[i]=random(50,450);///水果重生
      }else{
        fruitY[i]=0; fruitX[i]=random(50,450);///沒接住,水果重生
      }
    }
  }
}

WEEK07 KILL THAT SHIT

STEP 1:畫出三角形








我想接水果!!!





week07

旋轉的三角形

 void setup()

{

  size(500,500);

}

void draw()

{

  ///background(255);

  beginShape();

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

  {

    float angle2 = radians(angle + 10*frameCount);

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

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

    vertex(x,y);

  }

  endShape(CLOSE);

}

                                                                            接水果

//float fruitX=150, fruitY=0;
float [] fruitX = new float[10];
float [] fruitY = new float[10];
float kidX=150, kidY=450;
int score=0;
void setup(){
size(500, 500);
for(int i=0; i<10; i++){
fruitX[i] = random(50,450);
fruitY[i] = -i*100;
}
}
void draw(){
background (255);
rect(kidX, kidY, 50, 80);
kidX=mouseX;
for(int i=0; i<10; i++){
ellipse(fruitX[i], fruitY[i], 60,80);
fruitY[i]++;
if(fruitY[i]>kidY){
if( kidX < fruitX[i] && fruitX[i] < kidX+80 ){// kR ?
score+= 10; // 
fruitY[i]=0; fruitX[i]=random(50, 450);
}else{
fruitY[i]=0; fruitX[i]=random(50, 450);
}//水果直接重生
}
}
}


丹ㄉ形狀 很型ㄛ

 今天我們要來弄形狀

我們要來先確認方位

我們可以更改angle來改變我們要的頂點

再來 我們可以用shape讓圓變實心
但我們發現圓有個破口
所以我們用CLOSE把那條線關起來
一樣更改angle可以改變圖形
然後我們可以用之前教的draw功能來讓圖形畫畫
讓他跟著滑鼠看看
我現在很想接水果
我們就來接水果



week07 圖形繪製

 

size(500,500);

for(int angle=0;angle<360;angle+=30){

    float angle2 = radians(angle);

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

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

    ellipse(x,y,2,2);

}




多邊形


size(500,500);

beginShape();

for(int angle=0;angle<360;angle+=30){ //可調角度

    float angle2 = radians(angle);

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

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

    vertex(x,y);//ellipse(x,y,2,2);

}


endShape(CLOSE);






圖形旋轉


size(500,500);

}

void draw(){

background(255); //殘影效果

beginShape();

for(int angle=0;angle<360;angle+=30){

    float angle2 = radians(angle+mouseX);

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

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

    vertex(x,y);//ellipse(x,y,2,2);

  }

endShape(CLOSE);

}





接水果


color c1=color(0,255,255);

color c2=color(20,30,40);


void draw(){

   background(255);

   fill(c2);

   rect(kidX,kidY,50,80);

   kidX = mouseX;

   ellipse(fruitX,fruitY,60,80);

   fruitY++;

   if(fruitY>kidY){

      if(kidX < fruitX && fruitX < kidX+80){

         score+=10;

         fruitY=0;

         fruitX=random(50,450);

      }

      else{

        fruitY=0;

        fruitX=random(50,450);

      }

   }

}




接水果  隨機變色


float [] fruitX=new float[10];

float [] fruitY=new float[10];

float kidX=150,kidY=450;

int score=0;

void setup(){

   size(500,500); 

   for(int i=0;i<10;i++){

       fruitX[i] = random(50,450);

       fruitY[i] = -i*100;

   }

}


void draw(){


  color c1=color(random(255),random(255),random(255));


   background(255);

   fill(c1);

   rect(kidX,kidY,50,80);

   kidX = mouseX;

   for(int i=0;i<10;i++){

     ellipse(fruitX[i],fruitY[i],60,80);

     fruitY[i]++;

     if(fruitY[i]>kidY){

        if(kidX < fruitX[i] && fruitX[i] < kidX+80){

           score+=10;

           fruitY[i]=0;

           fruitX[i]=random(50,450);

        }

        else{

          fruitY[i]=0;

          fruitX[i]=random(50,450);

        }

     }

  }

}