2025年3月20日 星期四

week005

01.Java程式:愛心: 

size(300, 300);

stroke(255, 0, 0);

translate(width/2,height/2);

for (int xx=-150; xx<150; xx++) {

  for (int yy=-150; yy<150; yy++) {

    float x =xx/100.0;

    float y =-yy/100.0;

    float d = x*x+y*y-1;

    if (d*d*d -x*x*y*y*y<0) point(xx, yy);

  }

}

02.Java程式:角度與弧度: 

size(600, 600);
background(0);
for (int i=0; i<6; i++) {
  for (int j=0; j<6; j++) {
    int now=i*6+j;
    ellipse(50+j*100,50+i*100,80,80);
    arc(50+j*100,50+i*100,60,60,0,now,PIE);
    arc(50+j*100,50+i*100,40,40,0,radians(now*10),PIE);
    text(now,j*100,i*100+30);
  }
}

03.Java程式:角度與弧度(2): 
void setup() {
  size(600, 600);
}
void draw() {
  background(128);
  line(200, 200, 400, 200);
  line(200, 200, mouseX, mouseY);
  float dx = mouseX-200, dy = mouseY-200;
  float a = atan2(dy, dx);
  arc(200, 200, 200, 200, 0, a, PIE);
  textSize(30);
  text("radians:"+a, 100, 100);
  text("degrees:"+degrees(a), 100, 130);
}
04.Java程式:旋轉長方形: 
void setup() {
  size(600, 600);
}
void draw() {
  background(204);
  translate( mouseX, mouseY);

  rotate(radians(frameCount*10));
  rect(50,-5, 100, 10);
}
05.Java程式:公轉與自轉長方形: 
void setup() {
  size(600, 600);
}
void draw() {
  background(204);
  pushMatrix();
  rotate(radians(frameCount*10));
  translate( width/2, height/2);
  rect(50, -5, 100, 10);
  popMatrix();
  pushMatrix();
  translate( width/2-100, height/2);
  rotate(radians(frameCount*10));
  rect(50, -5, 100, 10);
  popMatrix();
}

06.Java程式:多重旋轉長方形: 
void setup() {
  size(500, 500);
}
void draw() {
  background(204);
  for (int x=50; x<500; x+=100) {
    for (int y=50; y<500; y+=100) {
      pushMatrix();
      translate( x, y);
      rotate(radians(frameCount));
      rect(-50, 5, 100, 10);
      popMatrix();
    }
  }
}

沒有留言:

張貼留言