2016年5月19日 星期四

Week05 02132412_沈泓宇

用java畫窗口:


程式碼:

import java.awt.Frame;

PFrame f;

secondApplet s;

void setup() {
 size(320, 240);
 PFrame f = new PFrame();
}

void draw() {
  background(255,0,0);
   fill(255);
   rect(10,10,frameCount%100,10);
   s.background(0, 0, 255);
   s.fill(100);
   s.rect(10,20,frameCount%120,10);
   s.redraw();
}

public class PFrame extends Frame {
    public PFrame() {
        setBounds(100,100,400,300);
        s = new secondApplet();
        add(s);
        s.init();
        show();
    }
}

public class secondApplet extends PApplet {
    public void setup() {
        size(400, 300);
        noLoop();
    }

    public void draw() {

    }


會轉動的眼珠:


程式碼:

void setup() {
 size(120,100);
}

void draw() {
 float t=frameCount/180.0*PI;
 background(0);
 fill(255);
 ellipse(40,50,33,33); 
 ellipse(120-40,50,33,33);
 fill(0); 
 ellipse(40+15*cos(t),50+15*sin(t),5,5); 
 ellipse(120-40+15*cos(t),50+15*sin(t),5,5);


眼珠跟隨滑鼠坐標:


程式碼:

void setup() {
 size(120,100);
}

void draw() {
  background(0);
  fill(255);
  ellipse(40,50,33,33);
  ellipse(120-40,50,33,33);
  fill(0);
  float t=atan2(mouseY-50,mouseX-45);
  ellipse(40+15*cos(t),50+15*sin(t),5,5);
  t=atan2(mouseY-50,mouseX-(120-40));
  ellipse(120-40+15*cos(t),50+15*sin(t),5,5);
}


畫n個矩形做成雙螺旋:


程式碼:

void setup(){
  size(600,600);
}

void draw(){
  background(255);
  float t=frameCount/100.0;
  for(float f=0;f<PI;f+=0.1){
    rect(200+150*cos(f+t),f*100,30,30);
    rect(200+150*cos(f+t+PI),f*100,30,30);
  }
}

備註:因為這個程式只是在一個窗口中畫矩形,所以運行沒問題,如果是用生成n個視窗來排成雙螺旋,這樣的CPU開銷就很大了。

沒有留言:

張貼留言