顯示具有 07160183_徐崇期 標籤的文章。 顯示所有文章
顯示具有 07160183_徐崇期 標籤的文章。 顯示所有文章

2020年12月21日 星期一

weeeeeeeeeeeeeeek15

 Part 1


size(276,183);

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

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

image(img,0,0);

println(pt.x);

Part 2


PVector user;

void setup()

{

  size(300,300);

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

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

}


void draw()

{

  background(250);

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

}

Next

PVector user;

PVector Y;

void setup()

{

  size(500,500);

  user = new PVector(10,20);

  Y = new PVector(100,300);

}


void draw()

{

  background(250);

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

}


void mouseDragged()

{

  user.x = mouseX;

  user.y = mouseY;

}

Finish


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

}

PART 3


可以用搖桿製造亂碼

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

}



2020年12月7日 星期一

weeeeeeeeeeeeek13

按按鈕發出聲音 (Arduino)

void setup() {

  Serial.begin(9600);

  pinMode(2,INPUT_PULLUP);

  pinMode(8,OUTPUT);

}

int state=0;

void loop() {

  // put your main code here, to run repeatedly:

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

    state=1;

    Serial.write("1");

  }

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

    state=0;

    Serial.write("0");

  }

  delay(100);

}

配合Arduino 更改視窗顏色

import processing.serial.*;

Serial myPort;

void setup()

{

  size(300,200);

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

}

int button=0;

void draw()

{

  if(myPort.available()>0)

  {

    int now = myPort.read();

    println("現在你讀的其實是:"+now);

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

    else button=0;

  }

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

  else background(255);

}

跟別台電腦作互動

import hypermedia.net.*;

UDP udp;

void setup()

{

  size(300,200);

  udp = new UDP(this,6000);

  udp.send("Connect","120.125.70.53");

}


void draw()

{

  

}


void mousePressed()

{

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

}

2020年11月30日 星期一

weeeeeeeeeeeek12

 TEST 1


按滑鼠左鍵 然後DODODODO的叫

TEST 2


按下1,3,5 會發出DOMISO

TEST 3


將tone裡面秒數刪掉

並且在按鍵放開給他noTone(8);

這樣就可以控制他的發聲長短


Ardunio

#define DO 523

#define RE 587

#define MI 659

#define FA 698

#define SO 784

#define LA 880

#define SI 988

void setup() {

  // put your setup code here, to run once:

  Serial.begin(9600);

  pinMode(2,INPUT_PULLUP);

  pinMode(8,OUTPUT);

  tone(8,DO);

  delay(100);

  tone(8,MI);

  delay(100);

  noTone(8);

}


void loop() {

  // put your main code here, to run repeatedly:

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

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

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

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

  }

}


Processing

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

}


void mousePressed()

{

  myPort.write("1");

}

2020年11月23日 星期一

weeeeeeeeeeek11

 Arduino初體驗

首先接上CPU,接著下載一個神奇的程式

去看裝置管理員,確定自己的COM是多少


實作

#define DO 523
#define RE 587
#define MI 659
#define FA 698
#define SO 784

int melody[]={SO,MI,MI,FA,RE,RE,DO,RE,MI,FA,SO,SO,SO,SO,MI,MI,FA,RE,RE,DO,MI,SO,SO,MI,DO,DO,DO};

void setup() {
  // put your setup code heRE, to run once:
  delay(1000);
  pinMode(8,OUTPUT);
  for(int i=0;i<sizeof(melody)/2;i++)
  {
    tone(8,melody[i],100);
    delay(200);    
  }
}

void loop() {
  // put your main code heRE, to run REpeatedly:

}

}




2020年10月26日 星期一

weeeeeek07

Part 1
畫圓

***進階(三角形) 


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

{

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

}

***進階(自動旋轉三角形)


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

}

Part 2

接水果遊戲

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

weeeeek05

 PART 1

size(500,400);

rect(100,100,200,100);

fill(255,0,0);

textSize(40);

text("Hello",100,100);

PART 2

設定上改細明體


PART 3


int [][]A={{1,1,1},
           {0,1,0},
           {0,1,1},
           {1,1,1}};
              
size(300,400);
for(int i=0;i<4;i++)
{
  for(int j=0;j<3;j++)
  {
    if(A[i][j]==0) fill(0);
    else fill(255,255,0);
    
    rect(j*100,i*100,100,100);
  }
}
PART 4
int [][]A={{1,2,2,2},
           {0,1,1,1},
           {0,1,1,1},
           {2,2,2,2}};
PImage bear,tiger;
void mousePressed()
{
  int i = int(mouseY/100);
  int j = int(mouseX/100);
  A[i][j]=0;
}
void setup()
{
  size(400,400);
  bear=loadImage("bear.png");
  tiger=loadImage("tiger.png");
}
void draw()
{
  background(0);
  for(int i=0;i<4;i++)
  {
    for(int j=0;j<4;j++)
     {
       if(A[i][j]==1) image(bear,j*100,i*100,100,100);
       if(A[i][j]==2) image(tiger,j*100,i*100,100,100);
     }
  }
  ellipse(mouseX,mouseY,25,25);
  text("mouseX:"+mouseX + "mouseY:" + mouseY,100,100);
}


2020年10月5日 星期一

weeeek04

Test 1


PImage img;

size(640,433);

img = loadImage("image.png");

image(img,0,0)

下載完圖檔後,直接放入Processing

進階

在圖片上再加圖片


PImage img;

PImage img2;


size(640,433);

img = loadImage("image.png");

img2 = loadImage("img2.jpg");


image(img,0,0);

image(img2,50,50,200,150); ////從座標(50,50)開始畫 大小為200x150

Test2

PImage img;
PImage img2;

void setup()
{
  size(640,223);
  img = loadImage("map.png");
  img2 = loadImage("pic1.png");
}

int x=0;
void draw()
{
  if(mouseX>320) x--; ///當鼠標超過,圖片往右移動
  image(img,x,0);
  image(img2,mouseX-50/2,mouseY-50/2,54,49);
}

Test3


float x=250,y=200;

float vx=1.0,vy=2.5;

void setup()

{

  size(500,400);

}


void draw()

{

  ellipse(x,y,10,10);

  x+=vx;

  y+=vy;

  if(x>500 || x<0) vx = -vx; ////碰到邊界折返

  if(y>400 || y<0) vy = -vy; ////碰到邊界折返

}

Test4



float x=250,y=200;

float vx=0,vy=0;

void setup()

{

  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;

}

2020年9月21日 星期一

week02

基礎

size(500,500);  視窗大小

background(#5AAAC6); 背景顏色

stroke(255,0,0); or stroke(#ff0000);外框線顏色

fill(255,255,0); or fill(#ff0000);裡面顏色


rect(100,100,300,300); 正方形

        左上為準心   邊長

練習1

void setup()

{

        size(500,500);

}

void draw()

{

        if(mousePressed) background(255,0,255); 當滑鼠按下時變色

        else background(0,255,0);

}

練習2


void setup()

{

        size(500,500);

}

void draw()

{

        if(mousePressed) 

            line(mouseX,mouseY,pmouseX,pmouseY);

}

練習3

void setup()

{

  size(600, 500);

}

void keyPressed()  儲存圖片

{

  save("picture.png");

}

void draw()

{

     fill(#ff0000); rect(0,0,100,100);

     fill(#ffff00); rect(0,100,100,100);

     fill(#00ff00); rect(0,200,100,100);

     fill(#ff00ff); rect(0,300,100,100);

     fill(#0000ff); rect(0,400,100,100);

      if(mousePressed && mouseX<100)

    {

        if(mouseY<100) stroke(#ff0000);

        else if(mouseY<200) stroke(#ffff00);

        else if(mouseY<300) stroke(#00ff00);

        else if(mouseY<400) stroke(#ff00ff);

        else if(mouseY<500) stroke(#0000ff);

    }

  else if(mousePressed && mouseX>100)

    {

        strokeWeight(4);  線的粗度

        line(mouseX,mouseY,pmouseX,pmouseY);

    }

}