顯示具有 Week03 標籤的文章。 顯示所有文章
顯示具有 Week03 標籤的文章。 顯示所有文章

2018年12月11日 星期二

week 03_廖宜德

void setup(){
size(500,500); //畫出大小為600x600範圍的方框
}

void draw(){
ellipse(150,150,400,400); //畫出一個位置為 (150,150),半徑為400的圓形
}

加入triangle(250,250,250,10,80,250); //畫出三角形 (三角形三個點的位置)

參考圖片  不用一個一個點 用數學算

設定半徑 用cos sin算出點 進而畫出三角形


多個三角形

void setup(){
size(600,400);
}
void draw(){
background(255);  //背景為白色
for(int cx=10;cx<800;cx+=40) //此為圓的X座標,每次加40 畫出多個圓
{
for(int cy=10;cy<400;cy+=40) //此為圓的Y座標,每次加40 畫出多個圓
{
ellipse(cx,cy,30,30);
}
}
}

增加一個副程式 mytriangle 用來畫多個三角形

設定副程式 mytriangle(){
triangle(cx+R*cos(a)+ cy+R*sin(a),
cx+R*cos(a+PI/3),cy+R*sin(a+PI/3),
cx+R*cos(a-PI/3),cy+R*sin(a-PI/3)
)

各個點使用三角函數去定義,如此就可以透過回圈畫出多個三角形,不用一一設定
}

設定float R=25; //用來設定三角形的邊長
float a=PI/2; //設定角度角度為90度


成果圖

如須改變三角形畫設方向,
將a加上一個負號即可

在mytriangle中再加入一個for迴圈
可以在三角形中畫更多的小三角形

2018年10月3日 星期三

Week03劉峻宇

                                           課堂學習


1.老師先教我們可以用processing畫出一個幾何圖形的圓
用這程式碼 新學的
}
void draw(){
   ellipse(250,250, 480,480);
   for(float angle=0; angle<PI*2; angle+=PI/3){
     for(int R=0; R<=240; R+=20){
       noFill();
       triangle(250,250,
            250+R*cos(angle),     250+R*sin(angle),
            250+R*cos(angle+PI/3),250+R*sin(angle+PI/3));
     }
   }
}

可以自己取想要畫的圓周


2.
以下程式碼可以畫出很多幾何三角形
void setup(){
  size(800, 400);
}
void myTriangle(int cx,int cy){
  float a= -PI/2;
  for(int R=15; R>0; R-=5){
    triangle( cx+R*cos(a),cy+R*sin(a),
            cx+R*cos(a+2*PI/3), cy+R*sin(a+2*PI/3),
            cx+R*cos(a-2*PI/3), cy+R*sin(a-2*PI/3) );
  }
}
void draw(){
  background(255);
  for (int cx=20; cx<800; cx+=40) {
    for (int cy=20; cy<400; cy+=40) {
      myTriangle(cx,cy);
    }
  }
}




3.
用一個程式碼來畫馬力歐

先把馬力歐圖片匯入資料夾

再用此程式碼
void setup(){
  size(400,600);
}
void draw(){
  background(255);
  
  PImage imgMario = loadImage("mario.png");
  image(imgMario, 0,0, 200,150);
}




4.
接下來我們要讓馬力歐能夠跳躍
我們只要加上這幾個程式碼就可以囉

PImage imgMario;
float marioX=0, marioY=100, marioVX=5, marioVY=0, marioAX, marioAY=0.1;
void setup(){
  size(400,600);
  imgMario = loadImage("mario.png");
}
void draw(){
  background(255);
  image(imgMario, marioX,marioY, 200,150);
  marioX += marioVX;  marioY += marioVY;
  marioVX+= marioAX;  marioVY+= 0.98; 
  if(marioY>600-150) marioVY*=-0.9;
  if(marioX>400-100) marioVX*=-1;
  if(marioY<0) marioVY*=-0.9;
  if(marioX<0) marioVX*=-1;
}







2018年9月27日 星期四

阿天天舔_WEEK03

一:
能用上下左右鍵控制

移動前



移動後



二:
執行後像接龍一樣的彈跳效果


week03



void setup(){ size (500,500); } void draw(){ ellipse(250,250,480,480); for(float angle=0; angle<PI*2; angle+=PI/3){ for(int r=0;r<=240;r+=20){ noFill(); triangle(250,250,250+r*cos(angle),250+r*sin(angle), 250+r*cos(angle+PI/3),250+r*sin(angle+PI/3)); } } }



void setup(){ size (800,400); } void mtriangle(int cx, int cy){ float a=-PI/2; for(int r=15;r>0;r-=5){ triangle(cx+r*cos(a),cy+r*sin(a), cx+r*cos(a+2*PI/3),cy+r*sin(a+2*PI/3), cx+r*cos(a-2*PI/3),cy+r*sin(a-2*PI/3)); } } void draw(){ background(255); for(int cx=20;cx<800;cx+=40){ for(int cy=20;cy<400;cy+=40){ mtriangle(cx,cy); } } }


PImage imgmario; float marioX=0,marioY=0,marioVX=0.5,marioVY=0,marioAX=0,marioAY=0.1; void setup(){ size (400,600); imgmario=loadImage("mario.png"); } void draw(){ background(255); image (imgmario,marioX,marioY,100,150); marioX+=marioVX; marioVX+=marioAX; marioY+=marioVY; marioVY+=marioAY; } void keyPressed(){ if(keyCode==UP){marioY-=5;} if(keyCode==DOWN){marioY+=5;} if(keyCode==LEFT){marioX-=5;} if(keyCode==RIGHT){marioX+=5;} }



PImage imgmario; float marioX=0,marioY=0,marioVX=0.5,marioVY=0,marioAX=0,marioAY=0.1; void setup(){ size (400,600); imgmario=loadImage("mario.png"); } void draw(){ background(255); image (imgmario,marioX,marioY,100,150); marioX+=marioVX; marioVX+=marioAX; marioY+=marioVY; marioVY+=marioAY; if(marioY>600-150)marioVY*=-0.9; if(marioX>400-100)marioVX*=-1; if(marioY<0)marioVY*=-0.9; if(marioY<0)marioVX*=-1; if(marioX<300)marioVX=-marioVX; if(marioX>0)marioVX=-marioVX; } void keyPressed(){ if(keyCode==UP){marioY-=5;} if(keyCode==DOWN){marioY+=5;} if(keyCode==LEFT){marioX-=5;} if(keyCode==RIGHT){marioX+=5;} }

Week 03 Hankins

一、圓形上的點

畫出一個圓形(半徑240),並且在圓形上想畫出三角形,但要如何在圓形上找到一個無禮數的點呢?


三角形的參數(x1,y1,x2,y2,x3,y3)。


利用COS()、SIN()。

X座標其實是COS(),Y座標其實是SIN()。

圓的半徑不為1,目前是240,每個X,Y的位置要乘上240,又圓心在(250,250),因此加上250。半個圓為PI,兩個圓為2*PI,將半個圓分為三個再除以3。利用FOR迴圈帥氣做出圓內的三角形。

Bingo


前面說到,半徑是240,乘上240可表示三角形的大小,所以用第二個FOR迴圈來描述R表示三角形的大小,這裡用到noFill()函數,可以讓圖形不上色。
noFill()說明


程式碼:
void setup(){
  size(500,500); 
}

void draw(){
  ellipse(250,250,480,480); 
  for(float angle=0; angle<PI*2;  angle+=PI/3){
    for(int R =0 ; R<=240; R+=10){  
    noFill();
    triangle(250,250,
            250+R*cos(angle),250+R*sin(angle)
           ,250+R*cos(angle+PI/3),250+R*sin(angle+PI/3));
    }
  }       
           
}


二、做出有規律的小小三角形

先用圓做出一個模型再慢慢刻劃,利用簡單的雙FOR迴圈完成。

再來要開始用三角形了,如果自行宣告一個函數來畫三角形會很輕鬆,因此宣告mytriangle()函數來畫三角形。

(cx,cy)為圓心,R是半徑可表示三角形大小,畫三個三角形


把R及a寫死,看看成為甚麼樣子。




最後加入FOR迴圈,a重新給值。


程式碼:
void setup(){
 size(800,400);

}

void mytriangle(int cx, int cy){
  float  a=-PI/2;
  for(int R=15; R>0; R-=5){
    triangle( cx+R*cos(a),cy+R*sin(a),
              cx+R*cos(a+2*PI/3),cy+R*sin(a+2*PI/3),
              cx+R*cos(a-2*PI/3),cy+R*sin(a-2*PI/3));
  }
}

void draw(){
 background(255);
 for(int cx=20; cx<800; cx+=40){
  for(int cy=20; cy<400; cy+=40){
   mytriangle(cx,cy);
  }
 }

  float  a=-PI/2;
}


三、做出一個人物可以跳跳跳(Super Mario)

先把Mario放進程式裏頭,要注意以下是錯誤示範!

這樣會浪費記憶體空間,程式會越來越大(因為讀不只一次)

正確做法


加入函式keyCode(),讓人物可以往上下左右動動動。

ax,ay為加速度,Vx,Vy為給予的速度,關閉重洗背景,觀察會有甚麼結果:

woo,有拋物線的感覺了,那試著讓人誤不要掉出邊界吧!



將萬有引力G加到程式哩,讓整體更真實。

如果Y座標>500,則被萬有引力影響往下墜,但不會超過邊界。X座標界在0到300,超過了則速度為反向移動。

程式碼:
PImage imgMario;
float marioX=0, marioY=0, marioVX=2, marioVY=0, marioAX=0, marioAY=0.1;
void setup(){
 size(400,600);
 imgMario = loadImage("mario.png");//read once
}

void draw(){
  //background(255);
  image (imgMario, marioX, marioY, 125, 150);
  marioX += marioVX; marioVX+= marioAX;
  marioY += marioVY; marioVY+= 0.98;
  if(marioY>500){
    marioVY = -marioVY * 0.8;
    marioY = 500;
  }
  if(marioX>300) marioVX = -marioVX;
  if(marioX<0) marioVX = -marioVX;
}
void keyPressed(){
 if(keyCode==UP)     {marioY-=5;}
 if(keyCode==DOWN)   {marioY+=60;}
 if(keyCode==LEFT)   {marioX-=5;}
 if(keyCode==RIGHT)  {marioX+=5;}
 }


圖片支援

week3

void setup(){ size (500,500); } void draw(){ ellipse(250,250,480,480); for(float angle=0; angle<PI*2; angle+=PI/3){ triangle(250,250,250+240*cos(angle),250+240*sin(angle),250+240*cos(angle+PI/3),250+240*sin(angle+PI/3)); } }

PImage imgmario; float marioX=0,marioY=0; void setup(){ size (400,600); imgmario=loadImage("mario.png"); } void draw(){ background(255); image (imgmario,marioX,marioY,100,150); } void keyPressed(){ if(keyCode==UP){marioY-=5;} if(keyCode==DOWN){marioY+=5;} if(keyCode==LEFT){marioX-=5;} if(keyCode==RIGHT){marioX+=5;}

*圖檔不能在draw裡面讀,要在setup裡面



week03_黃惠嘉

🔺2018互動技術&sketch 程式



void setup(){

  size(500,500);

}
void draw(){
  ellipse(250,250,230,230);⇒圓
}

triangle(250,250,250,10,80,150);⇒三角形













void setup(){
  size(500,500);
}
void draw(){
  ellipse(250,250,480,480);
  for(float angle=0;angle<PI*2;angle+=PI/3){
      triangle(250,250,
            250+240*cos(angle),250+240*sin(angle),
            250+240*cos(angle+PI/3),250+240*sin(angle+PI/3));
  }PI是一個數值常數,其值為3.1415927。 它是圓周長與直徑的比值。 它能與三角函數sin()和cos()結合使用。
}
void setup(){
  size(500,500);
}
void draw(){
  ellipse(250,250,480,480);
  for(float angle=0;angle<PI*2;angle+=PI/3){
    for(int R=0;R<=240;R+=30){
      noFill();⇒沒填滿色,如果同時用noStroke()和noFill(),則不會向屏幕繪製任何內容。
      triangle(250,250,
            250+R*cos(angle),250+R*sin(angle),
            250+R*cos(angle+PI/3),250+R*sin(angle+PI/3));
    }
  }
}



void setup(){
  size(500,500);
}
void draw(){
  background(255);
  for(int cx=10;cx<800;cx+=40){
    for(int cy=10;cy<800;cy+=40){
      ellipse(cx,cy,30,30);
    }
  }
}


void setup(){
  size(800,400);
}
void myTriangle(int cx,int cy){
  float R=20,a=-PI/2;
  triangle( cx+R*cos(a),cy+R*sin(a),
            cx+R*cos(a+2*PI/3),cy+R*sin(a+2*PI/3),
            cx+R*cos(a-2*PI/3),cy+R*sin(a-2*PI/3));
}⇒三角形
void draw(){
  background(255);
  for(int cx=10;cx<800;cx+=40){
    for(int cy=10;cy<400;cy+=40){
      //ellipse(cx,cy,30,30);
      myTriangle(cx,cy);
    }
  }
}



void setup(){
  size(800,400);
}
void myTriangle(int cx,int cy){
  float a=-PI/2;
  for(int R=15;R>0;R-=5){
    triangle( cx+R*cos(a),cy+R*sin(a),
              cx+R*cos(a+2*PI/3),cy+R*sin(a+2*PI/3),
              cx+R*cos(a-2*PI/3),cy+R*sin(a-2*PI/3));
  }
}
void draw(){
  background(255);
  for(int cx=10;cx<800;cx+=40){
    for(int cy=10;cy<400;cy+=40){
      //ellipse(cx,cy,30,30);
      myTriangle(cx,cy);
    }
  }
}


void setup(){
  size(800,400);
}
void draw(){
  background(255);
  PImage imgMario = loadImage("mario.png");⇒讀取圖片
  image(imgMario,0,0,100,150);
}



PImage imgMario;
float marioX=0,marioY=0;
void setup(){
  size(400,600);
  imgMario = loadImage("mario.png");
}
void draw(){
  background(255);
  image(imgMario,marioX,marioY,100,150);
}
void keyPressed(){
  if(key==UP)    {marioY-=5;}⇒按按鍵上下左右的上
  if(key==DOWN)  {marioY+=5;}
  if(key==LEFT)  {marioX-=5;}
  if(key==RIGHT) {marioX+=5;}
}


PImage imgMario;
float marioX=0,marioY=0,marioVX=2,marioVY=0,marioAX=0,marioAY=0.1;
void setup(){
  size(400,600);
  imgMario = loadImage("mario.png");
}
void draw(){
  background(255);
  image(imgMario,marioX,marioY,100,150);
  marioX  +=marioVX;
  marioY  +=marioVY;
  marioVX +=marioAX;
  marioVY +=marioAY;
}
void keyPressed(){
  if(key==UP)    {marioY-=5;}
  if(key==DOWN)  {marioY+=5;}
  if(key==LEFT)  {marioX-=5;}
  if(key==RIGHT) {marioX+=5;}
}

PImage imgMario;
float marioX=0,marioY=0,marioVX=2,marioVY=0;
void setup(){
  size(400,600);
  imgMario = loadImage("mario.png");
}
void draw(){
  image(imgMario,marioX,marioY,100,150);
  marioX  +=marioVX; marioY  +=marioVY;
  marioVX +=0;  marioVY +=0.98;
  if(marioY>500){
    marioVY =-marioVY*0.8;
    marioY=500;
  }
  if(marioX>300) marioVX=-marioVX;
  if(marioX<0) marioVX=-marioVX;
}
void keyPressed(){
  if(key==UP)    {marioY-=5;}
  if(key==DOWN)  {marioY+=5;}
  if(key==LEFT)  {marioX-=5;}
  if(key==RIGHT) {marioX+=5;}
}