week09-1
PShape body,head;
void setup(){
size(400,400,P3D);
body=loadShape("body.obj");
head=loadShape("head.obj");
}
void draw(){
background(204);
translate(200,300);
sphere(10); //原點的球
scale(10,-10,10); //y要上下反過來
shape(body,0,0);
shape(head,0,0);
}
PShape uparm1,upuparm1;
void setup(){
size(400,400,P3D);
uparm1=loadShape("uparm1.obj");
upuparm1=loadShape("upuparm1.obj");
}
void draw(){
background(204);
translate(200,300);
sphere(3); //原點的球
scale(10,-10,10); //y要上下反過來
shape(upuparm1,0,0); //上上手臂
pushMatrix();
translate(-4.1,19.9); //掛回原本的位置
rotateX(radians(mouseY));
translate(4.1,-19.9); //把物體旋轉中心放到座標中心
//translate(mouseX/10,-mouseY/10); //移動、找數值
//println(mouseX/10,-mouseY/10); //印出適合的數值
shape(uparm1,0,0); //上手臂
popMatrix();
}
week09-4
//week09-4_gundam_uparm_upuparm_hand
PShape uparm1,upuparm1,hand1;
void setup(){
size(400,400,P3D);
uparm1=loadShape("uparm1.obj");
upuparm1=loadShape("upuparm1.obj");
hand1=loadShape("hand1.obj");
}
void draw(){
background(204);
translate(200,300);
sphere(3); //原點的球
scale(10,-10,10); //y要上下反過來
shape(upuparm1,0,0); //上上手臂
pushMatrix();
translate(-4.1,19.9); //掛回原本的位置
rotateZ(radians(mouseX));
translate(4.5,-19.9); //把物體旋轉中心放到座標中
shape(uparm1,0,0); //上手臂
pushMatrix();
translate(-4.5,16.9);
rotateX(radians(mouseY));
translate(4.5,-16.9);
//translate(mouseX/10,-mouseY/10); //移動、找數值
//println(mouseX/10,-mouseY/10); //印出適合的數值
shape(hand1,0,0);
popMatrix();
popMatrix();
}
week09-5
//week09-5_gundam_uparm_upuparm_hand
PShape uparm1,upuparm1,hand1;
void setup(){
size(400,400,P3D);
uparm1=loadShape("uparm1.obj");
upuparm1=loadShape("upuparm1.obj");
hand1=loadShape("hand1.obj");
}
float[]angle=new float[20];
int ID=0;
void keyPressed(){
if(key=='1') ID=1;
if(key=='2') ID=2;
}
void mouseDragged(){
angle[ID]+=mouseX-pmouseX;
}
void draw(){
background(204);
translate(200,300);
sphere(3); //原點的球
scale(10,-10,10); //y要上下反過來
shape(upuparm1,0,0); //上上手臂
pushMatrix();
translate(-4.1,19.9); //掛回原本的位置
rotateZ(radians(angle[1]));
translate(4.5,-19.9); //把物體旋轉中心放到座標中
shape(uparm1,0,0); //上手臂
pushMatrix();
translate(-4.5,16.9);
rotateX(radians(angle[2]));
translate(4.5,-16.9);
//translate(mouseX/10,-mouseY/10); //移動、找數值
//println(mouseX/10,-mouseY/10); //印出適合的數值
shape(hand1,0,0);
popMatrix();
popMatrix();
}
week09-6
//week09-6_save_saveString_loadString
void setup(){
size(300,300);
rect(10,10,80,80);
rect(110,110,80,80);
save("file.png"); //可把某個畫面存檔
another = loadStrings("lines.txt"); //如果讀到了,就有陣列
}
int x=10,y=10,ID=0;
void draw(){
background(204);
rect(x,y,80,80);
if(another != null){
int[] now=int(split(another[ID],' '));
rect(now[0],now[1],80,80);
ID=(ID+1)%another.length;
}
}
void mouseDragged(){
x += mouseX - pmouseX;
y += mouseY - pmouseY;
String now = x + " " + y; //現在座標的字串
lines.add(now); //印出來
}
ArrayList<String> lines = new ArrayList<String>(); //ArrayList資料結構
String [] another; //另外一個讀到的字串資料(一開始沒有東西)
void keyPressed(){
String [] arr = new String[lines.size()]; //傳統Java陣列的資料結構
lines.toArray(arr); //把ArrayLis轉換成傳統的陣列,以便存檔
if(key=='s') saveStrings("lines.txt",arr); //按下英文小寫s會存檔
}
會動欸
沒有留言:
張貼留言