顯示具有 07160220_葉譯琳 標籤的文章。 顯示所有文章
顯示具有 07160220_葉譯琳 標籤的文章。 顯示所有文章

2020年12月21日 星期一

week ╯15 ╮

 week15👅💓👿😡


♥輸入一張圖片,印出pt的x=10

♥程式碼-

size(600,600);

PImage img=loadImage("img.jpg");

PVector pt=new PVector(10,20,0);

image(img,0,0);//顯示image

println(pt.x);//印出pt的x

float userX=10,userY=20,userZ=0;

float use2X=30,user2Y=40,user2Z=0;///before

PVector user=new PVector(10,20,0);

PVector user2=new PVector(30,40,0);//after


---

♥畫出一顆球

♥程式碼-

PVector user;

void setup(){

  size(600,600);

  user = new PVector(10,20);

}

void draw(){

  background(255);

  ellipse( user.x,user.y,20,20):

}


---




♥Y為彈弓,拖移滑鼠就能射出球(無限)

♥程式碼-

PVector user;

PVector Y,v=null;

void setup(){

  size(600,400);

  user = new PVector(100,300);

  Y = new PVector(100,300);

}

void draw(){

  background(255);

  line( user.x,user.y,Y.x,Y.y);

  textSize(40);

  fill(255,0,0); text("Y",Y.x,Y.y);

  fill(255); ellipse( user.x,user.y,20,20);

  if(v!=null) user.add(v);

}

void mouseDragged(){

  user.x=mouseX;

  user.y=mouseY;

}

void mouseReleased(){

  PVector diff = PVector.sub(Y,user);

  v =diff.div(10);

}


---



♥會印出東西

♥程式碼-

void setup() {

 pinMode(2,INPUT_PULLUP);

 Serial.begin(9600);

}


void loop() {

  int x = analogRead(A0);

  int y = analogRead(A1);

  int sw = digitalRead(2);


  Serial.write(x);

  Serial.write('+');

  Serial.write(y);

  Serial.write('+');

  Serial.write(sw);

  Serial.write(' ');

  delay(20);

}

---

processing

♥程式碼-

PVector user;

PVector Y,v=null;

void setup(){

  size(600,400);

  user = new PVector(100,300);

  Y = new PVector(100,300);

}

void draw(){

  background(255);

  line( user.x,user.y,Y.x,Y.y);

  textSize(40);

  fill(255,0,0); text("Y",Y.x,Y.y);

  fill(255); ellipse( user.x,user.y,20,20);

  if(v!=null) user.add(v);

}

void mouseDragged(){

  user.x=mouseX;

  user.y=mouseY;

}

void mouseReleased(){

  PVector diff = PVector.sub(Y,user);

  v =diff.div(10);

}

---

♥程式碼-

void setup() {

 pinMode(2,INPUT_PULLUP);

 Serial.begin(9600);

}


void loop() {

  int x = analogRead(A0);

  int y = analogRead(A1);

  int sw = digitalRead(2);


  Serial.write(x/4);

  Serial.write(y/4);

  Serial.write(sw);

  delay(20);

}

---

processing

♥程式碼-

import processing.serial.*;

Serial myPort;

void setup(){

  size(256,256);

  myPort = new Serial(this,"COM4",9600);

}

int ballX=0, ballY=0;

void draw(){

  if(myPort.available()>=3){

    int x = myPort.read();

    int y = myPort.read();

    int sw = myPort.read();

    ballX = x;

    ballY = y;

  }

  ellipse( ballX, ballY, 10, 10);

}

---

♥程式碼-

import processing.serial.*;

Serial myPort;

void setup(){

  size(256,256);

  myPort = new Serial(this,"COM4",9600);

}

int ballX=0, ballY=0;

void draw(){

  if(myPort.available()>=3){

    int x = myPort.read();

    int y = myPort.read();

    int sw = myPort.read();

    ballX = x;

    ballY = y;

  }

  ellipse( ballX, ballY, 10, 10);

}


2020年12月14日 星期一

week ╯14 ╮

week14💣💤😰🙀 


♥5v、A0、gnd

♥轉動把手,可以調整大小聲

♥程式碼-

#define buzzer 8

void setup()

{

  pinMode(13,OUTPUT);

  pinMode(8,OUTPUT);

}

void loop()

{

 int now = analogRead(A0);

 tone(8,now);

}

---

♥轉動把手,燈會一個一個亮起來

♥程式碼-

void setup() {

 for(int i=2;i<=13;i++)

 {

  pinMode(i,OUTPUT);

 }

}


void loop() {

  int now = analogRead(A0);

  int level = now/ (512/13);

  for(int i=2;i<=13;i++)

  {

    if(i<level) digitalWrite(i,HIGH);

    else digitalWrite(i,LOW);

  }

}

---

♥processing

♥程式碼-

import processing.serial.*;

Serial myPort;

void setup(){

  size(765,100);

  myPort = new Serial(this,"COM7",9600);

}

int level=0;

void draw(){

  background(255);

  fill(255,0,0);

  rect(0,0,lebel*3,100);

  if( myPort.available()>0){

    int now = myPort.read();

    level = now;

  }

}

2020年12月7日 星期一

week ╯13 ╮

 week13👀❤✌👤

♥2槽輸入,8槽喇叭輸出,按下按鈕後state=1、並輸出1,放開則state=0、並輸出0

♥程式碼-

#define button 2

#define buzzer 8


void setup()

{

  Serial.begin(9600);

  pinMode(2,INPUT_PULLUP);

  pinMode(8,OUTPUT);

}

int state=0;

void loop()

{

  if(digitalRead(2)==LOW && state==0)

  {

    state=1;

    Serial.write("1");

  }

  if(digitalRead(2)==HIGH && state==1)

  {

   state=0;

    Serial.write=("0");;

  }

  delay(100);

}

---

♥processing

♥程式碼-

import processing.serial.*;

Serial myPort;

void setup(){

    size(300,200);

    myPort = new Serial(this, "COM5", 9600);

}

int button=0;

void draw(){

  if( myPort.available()>0 ){///收資料

    int now = myPort.read();

    println("right now you read is:"+now);

    if( now == '1') button=1;

    else button=0;

  }

  if (button==1) background(255,0,0)

  else background(255);

}


---

♥download->UDP

♥點擊方框就能將資料傳輸到"120.125.70.53"

♥程式碼-

import hypermedia.net.*;

UDP udp;

void setup(){

    size(300,200);

    udp= new UDP(this, 6000);

    udp.send("hello world", "120.125,70,53", 6100);

}

void draw(){

 

}

void mousePressed(){

   udp.send("mousePressed","120.125.70.53", 6100); 

}



2020年11月30日 星期一

week ╯ 12 ╮

 week12🔍🔑⏳


♥一直發do,一秒後發mi,一秒後再發sol,最後一秒後靜音

♥程式碼:

#define Do 523

#define Re 587

#define Mi 659

#define Fa 698

#define Sol 784

         #define button 2

         #define buzzer 8 

    

void setup()

{

  pinMode(8,OUTPUT);

  tone(8,Do);//一直發do

  delay(1000);

  tone(8,Mi);//一直發mi

  delay(1000);

  tone(Sol);//一直發sol

  delay(1000);

  noTone(8);//靜音

}


void loop()

{


}


---

♥連接processing,1發do,2發mi,3發sol

♥程式碼-

#define Do 523

#define Re 587

#define Mi 659

#define Fa 698

#define Sol 784

#define button 2

#define buzzer 8


void setup()

{

  Serial.begin(9600);

  pinMode(2,INPUT_PULLUP);

  pinMode(8,OUTPUT);

  tone(8,Do);

  delay(100);2

  tone(8,Mi);

  delay(100);

  noTone(8);

}


void loop()

{

  while( Serial.available() > 0 ){

      int now = Serial.read();

      if(now == '1') tone(8,Do,100):

      if(now == '5') tone(8,Mi,100):

      if(now == '9') tone(8,Sol,100):

  }

} 

♥processing

♥程式碼-

import processing.serial.*;

Serial myPort;

void setup(){

    size(200,200);

    myPort = new Serial(this, "COM",9600);

}

void draw(){

  

}

void mousePressed(){

  myPort.write("1");///按下輸出1

} 

---

♥1~7 do~si,空=0

♥程式碼-

#define Do 523

#define Re 587

#define Mi 659

#define Fa 698

#define Sol 784

#define La 880

#define Si 988

#define button 2

#define buzzer 8


void setup()

{

  Serial.begin(9600);

  pinMode(2,INPUT_PULLUP);

  pinMode(8,OUTPUT);

  tone(8,Do);

  delay(100);

  tone(8,Mi);

  delay(100);

  noTone(8);

}


void loop()

{

  while( Serial.available() > 0 ){

      int now = Serial.read();

      if(now == '1') tone(8,Do);

      if(now == '2') tone(8,Re);

      if(now == '3') tone(8,Mi);

      if(now == '4') tone(8,Fa);

      if(now == '5') tone(8,Sol);

      if(now == '6') tone(8,La);

      if(now == '7') tone(8,Si);

      if(now == '0') noTone(8);

  }

} 

♥processing 按1~7鍵發出do~si,放開為0

♥程式碼-

import processing.serial.*;

Serial myPort;

void setup(){

    size(200,200);

    myPort = new Serial(this, "COM4",9600);

}

void draw(){

  

}

void keyPressed(){

  if(key=='1') myPort.write("1");

  if(key=='2') myPort.write("2");

  if(key=='3') myPort.write("3");

  if(key=='4') myPort.write("4");

  if(key=='5') myPort.write("5");

  if(key=='6') myPort.write("6");

  if(key=='7') myPort.write("7");

}

void keyReleased(){

  myPort.write("0");

}

 

 

 

2020年11月23日 星期一

week ╯ 11 ╮

 week11💋💏👿💔


->Arduino 製作音樂

https://github.com/CytronTechnologies/MakerUno_Examples/blob/master/MakerUno_DefaultSketch/MakerUno_DefaultSketch.ino?fbclid=IwAR2zuFExMZD5DL42zwk6nVxP4eONTElpM8uffNh6BSlaAkyIGPIO3r4RsHU

---

♥發出按照melody順序撥放音階

♥程式碼:

#define Do 523

#define Re 587

#define Mi 659

#define Fa 698

#define Sol 784


#define BUTTON 2

#define BUZZER 8


int melody[] = {Do,Re,Mi,Fa,Sol};


int noteDurations[] = {

  10, 10, 10, 10, 10, 10, 10, 10, 10

};


int pin;

int ledArrayHigh;

int ledArrayLow;

boolean mode = false;

boolean buttonPressed = false;


void setup()

{

  delay(1000);

  pinMode(8,OUTPUT);

  for(int i=0; i<5 ; i++)

  {

    tone(8, melody[i] , 100);

    delay(130);

  }

}


void loop()

{


}

2020年11月2日 星期一

week ╯ 08 ╮

week08🙆💜



♥如果顏色是白色就印出1
其餘印出0

♥程式碼-
PImage img;

void setup(){
  size(300,200);
  img=loadImage("mouse1.png");
}
void draw(){
  image(img,0,0);
}
void mouseMoved(){
  loadPixels();
  for(int i=0;i<width*height;i++){
    if( pixels[i]==#ffffff) print("1");
    else print("0");
  }
}

---


♥左上角設置一個方塊讀取滑鼠現在位址的顏色

♥程式碼-
PImage img;
color nowColor;
void setup(){
  size(300,200);
  img=loadImage("mouse1.png");
}
void draw(){
  image(img,0,0);
  fill(nowColor); rect(0,0,30,30);
}
void mouseMoved(){
  loadPixels();
  int now= width*mouseY+mouseX;
  nowColor = pixels[now];
  //for(int i=0;i<width*height;i++){
    //if( pixels[i]==#ffffff) print("1");
    //else print("0");
  }

2020年10月26日 星期一

week ╯ 07 ╮

 week07👽💚



♥利用不同的角度產生2x2的圓圈

♥程式碼-

size(500,500);

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

{

   float angle2 = radians(angle);///弧度

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

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

   ellipse( x, y, 2, 2);

}

---

♥每120度一個點,連成一個三角形

♥程式碼-

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);

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

}

endShape(CLOSE);///結束

---


♥三角形根據滑鼠邊旋轉120度邊移動,印出很多三角形
♥程式碼-
void setup(){
size(500,500);
}
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);
     //ellipse( x, y, 2, 2);
  }
endShape(CLOSE);
}

---


♥將半徑從50改為100,三角形變大
旋轉速度變快

♥程式碼-
void setup(){
size(500,500);
}
///1hr = 60min ,1min = 60sec ,1sec=60frame
///frameCount=第幾個frame
void draw(){
  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);
     //ellipse( x, y, 2, 2);
  }
endShape(CLOSE);
}







2020年10月19日 星期一

week ╯ 06 ╮

 week06👅👿


♥設定文字及文字大小、位置

♥程式碼-

size(300,300);

fill(255,0,255);

textSize(40);

text("07160220",30,50);

---


♥文字置左、置中、置右
(以座標為中心方向對齊)

♥程式碼-
size(300,300);
background(0);
fill(255,0,255);

textSize(40);
textAlign(LEFT);
text("LEFT",150,50);
fill(255,255,0);///紫色
textSize(40);
textAlign(CENTER);
text("CENTER",150,100);
fill(0,255,255);///
textSize(40);
textAlign(RIGHT);
text("RIGHT",150,150);

---


♥錯誤的寫法,要如何更正才能使紅、黑在對的位置


♥匯入圖片(鬼魂、南瓜),圖片出現在陣列中正確的位置上

♥程式碼-
int [][]A={{2,2,2,2},
              {0,1,1,1},
              {0,1,1,1},
           {2,2,2,2}};
///0=black, 1=p,2=b
PImage p,b;
void setup(){
size(400,400);
p=loadImage("11.png");///匯入南瓜
b=loadImage("12.png");///匯入鬼魂
}
void draw(){
  background(0);///背景為黑
  for(int i=0;i<4;i++){///left
  for(int j=0;j<4;j++){///right
    if(A[i][j]==1) image(p,j*100,i*100,100,100);///1=南瓜
    if(A[i][j]==2) image(b,j*100,i*100,100,100);///2=鬼魂
    }
  }
}

---



♥點擊南瓜(框框)->南瓜消失
可以把所以圖案弄不見唷

♥程式碼-
int [][]A={{2,2,2,2},
           {0,1,1,1},
           {0,1,1,1},
           {2,2,2,2}};///0=black, 1=p,2=b
PImage p,b;
void mousePressed(){
  int i=int(mouseY/100);
  int j=int(mouseX/100);
  A[i][j]=0;
} 
void setup(){
size(400,400);
p=loadImage("11.png");
b=loadImage("12.png");
}
void draw(){
  background(0);
  for(int i=0;i<4;i++){///left
  for(int j=0;j<4;j++){///right
    if(A[i][j]==1) image(p,j*100,i*100,100,100);
    if(A[i][j]==2) image(b,j*100,i*100,100,100);
    }
  }
}




2020年10月12日 星期一

week ╯ 05 ╮

 week05💣💀


♥先將一張圖匯入processing->logo.png


♥讓圖片碰到邊框彈跳、不斷輪迴

---


♥將背景換成黑色(看不到圖片路徑)
滑鼠碰到圖片時,圖片消失

♥程式碼-
PImage img;
float x=100,y=500,vx=3,vy=-30;
int fruitDie=0;
void setup(){
  size(500,500);
  img= loadImage("logo.png");
}
void draw(){
  background(0);
  image(img,x,y,100,100);
  x+=vx;
  y+=vy;
  vy+=0.98;
  if(y>500) fruitDie=1;
  if(x<mouseX && mouseX < x+100 && y<mouseY && mouseY<y+100) fruitDie=1;
  stroke(255); line(mouseX,mouseY,pmouseX,pmouseY);
  if(fruitDie==1){
    if(frameCount%2==0){
      x=random(250); y=500; vx=random(2,3); vy=-random(28,32);
    }else{
      x=random(250,500); y=500; vx=random(2,3); vy=-random(28,32);
  }
  fruitDie=0;
  }
}

---

♥加入音效

速寫本->引用庫文件->添加庫文件->install sound

♥程式碼-

import processing.sound.*;

SoundFile sound1;

SoundFile sound2;

void setup(){

  size(300,300);

  sound1 = new SoundFile(this," ");

  sound2 = new SoundFile(this," ");

  //sound.play();///只能播一次

  sound2.loop;///自動重複播放

}  

  void draw(){

    

  }

  vouid mousePressed(){

    sound1.play();///按下滑鼠播放

  }

---

接水果遊戲

♥程式碼-

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月5日 星期一

week ╯ 04 ╮

 week04💜👾



♥將圖片匯入processing(調整適當大小)

♥程式碼-
PImage img;
size(800,533);

img = loadImage("cat.jpg");///匯入一張圖
image( img , 0 , 0);

---


♥再匯入一張圖片作為LOGO
setup只做一次
draw一秒做60次
設滑鼠位置為LOGO的中心

♥程式碼-
PImage img;
PImage img2;
void setup()///only once
{
  size(800,533);
  img = loadImage("cat.jpg");
  img2 = loadImage("logo.png");
}
void draw()///sixty/1sec
{
  image( img , 0 , 0);
  image( img2 ,mouseX-150/2, mouseY-119/2,150,119 );
}

---


♥把background換成長型的圖片
♥程式碼-
PImage img;
PImage img2;
void setup()///only once
{
  size(800,471);
  img = loadImage("bg.jpg");
  img2 = loadImage("mario.png");
}
int x;
void draw()
{
  if(mouseX>200) x--;
  image( img , x , 0);
  image( img2 ,mouseX-110/2, mouseY-100/2,150,119 );
}

---



♥按下滑鼠 和球之間會產生一條線
放開後球將開始彈射

♥程式碼-
float x=250,y=200;
float vx=0,vy=0;
void setup()///only once
{
  size(500,400);
}
void draw()
{
  background(255);
  if(mousePressed)line(mouseX,mouseY,x,y);
  ellipse(x,y,10,10);
  ellipse(mouseX,mouseY,10,10);
  x+=vx; y+=vy;
  if(x>500 || x<0)vx=-vx;
  if(y>400 || y<0)vy=-vy;
}
void mouseReleased()
{
   vx = x-mouseX;
   vy = y-mouseY;
}
---

♥圓圈呈現拋物線

♥程式碼-
float x=250,y=200;
float vx=1.3,vy=-14;
void setup()///only once
{
  size(500,400)-;
}
void draw()
{
  //background(255);隱藏後可看到球的路徑
  ellipse(x,y,10,10);
  x+=vx; y+=vy;///牛頓第一運動定律 動者恆動 靜者恆靜
  vy += 0.98;///牛頓第二運動定律 f=ma
  if(x>500 || x<0)vx=-vx*0.85;
  if(y>400 || y<0)vy=-vy*0.85;
}