課堂作業1
//week05_1_i_love_you
size(300,300); //大小300*300
stroke(255,0,0); //紅色線條
for(int xx=0;xx<300;xx++){ //大的X 0..300
for(int yy=0;yy<300;yy++){ //大的Y 0.300
float x = (xx-150)/100.0;
float y = -(yy-150)/100.0; //減一半、除100
//0...300變-150....150
float d = x*x+y*y-1;
if(d*d*d-x*x*y*y*y<0) point(xx,yy);
}
}
課堂作業2
//week05_1b_i_love_you
size(300,300);//大小300*300
stroke(255,0,0);//紅色線條
translate(width/2,height/2);
for(int xx=-150;xx<150;xx++){//大的X 0..300
for(int yy=-150;yy<150;yy++){//大的Y 0.300
float x = xx/100.0;
float y = -yy/100.0;//減一半、除100
//0...300變-150....150
float d = x*x+y*y-1;
if(d*d*d-x*x*y*y*y<0) point(xx,yy);
}
}
課堂作業3
//week05_2_for_for_ellipse_arc_arc_radians_360
//角度 degress vs .radians
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,40,40,0,radians(now*10),PIE);
text(now,j*100,i*100+30);
}
課堂作業4
//week05_3_
// degress vs .radians
void setup(){
size(400,400);
}
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);
}
課堂作業5
//week05_3b_atan2_dy_text_radians_degrees
// degress vs .radians
void setup(){
size(400,400);
}
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);
if(a<0) arc(200,200,200,200,a,0,PIE);
else arc(200,200,200,200,0,a,PIE);
textSize(30);
text("radians:"+a,100,100);
text("degrees: "+degrees(a),100,130);
}
課堂作業6
//week05_4_translate_mouseX_mouseY_rotate_radians_ramCount
void setup(){
size(400,400);
}
void draw(){
background(204);
//請做以下測試:把下面兩行,調一下順序
//會發現:畫東西之前的translate()才有效果
//在電腦圖學理,畫圖時,會照著之前的{累積的移動、旋轉}來放東西
translate(mouseX,mouseY);//移到mouse所在位置
rotate(radians(frameCount));
rect(-50,-5,100,10);//寬度100的棒子,但放在左上角
}
課堂作業7
//week05_5_translate_mouseX_mouseY_rotate_radians_ramCount
void setup(){
size(400,400);
}
void draw(){
background(204);
//請做以下測試:把下面兩行,調一下順序
//會發現:畫東西之前的translate()才有效果
//在電腦圖學理,畫圖時,會照著之前的{累積的移動、旋轉}來放東西
rotate(radians(frameCount)*10);
translate(mouseX,mouseY);//移到mouse所在位置
rect(-50,-5,100,10);//寬度100的棒子,但放在左上角
課堂作業8
//week05_6_pushMatrix_popMatrix_
void setup(){
size(400,400);
}
void draw(){
background(204);
pushMatrix();
translate(width/2,height/2);//(把下面這坨)移到畫面中心
rotate(radians(frameCount)*10);
rect(-50,-5,100,10);
popMatrix();
//希望在左邊-100的地方,也在轉
pushMatrix();
translate(width/2-100,height/2);//(把下面這坨)移到畫面中心
rotate(radians(frameCount)*10);
rect(-50,-5,100,10);
popMatrix();
課堂作業9
//week05_7_many_pushMatrix
void setup(){
size(500,500);
}
void draw(){
background(204);
for(int x= 50;x<500;x+=50){
for(int y=50;y<500;y+=50){
pushMatrix();
translate(x,y);
rotate(radians(frameCount));
rect(-50,-5,100,10);
popMatrix();
}
}
}
沒有留言:
張貼留言