3D圖形
使用P3D可使用3D功能,可和OpenGL連動
放大縮小旋轉
放大、填面、選轉軸設定
void setup(){ size(400,400,P3D);//3D功能 } void draw(){ background(#FFFFF2); pushMatrix();//備份矩陣 translate(mouseX,mouseY);//移動 rotateY(radians(mouseX));//對Y軸轉動 fill(0,255,0);//面填綠色 box(100);//3D方塊 noFill();//不填充(透視) scale(2);//放大兩倍 box(100); popMatrix();//還原矩陣 }點線面色彩
少了封閉線,未連接
ensShape()+CLOSE
摺紙
ArrayList<PVector> pt;//大資料結構ArrayList
void setup(){
size(400,400,P3D);
pt=new ArrayList<PVector>();
}//初始化,把大的資料結構準備好(裡面放小資料結構)
void draw(){
background(#FFFFF2);
for(PVector p:pt){//特殊for迴圈,得小資料結構
ellipse(p.x,p.y,10,10);
}
}
void mousePressed(){
pt.add( new PVector(mouseX,mouseY));
}//大資料結構內加入小的PVector物件
連接
連接完成後轉動選點
拖曳改位置
ArrayList<PVector> pt;
void setup(){
size(400,400,P3D);
pt=new ArrayList<PVector>();
for(int i=0;i<37;i++){
pt.add(new PVector(random(400),random(400)));
}
}
void draw(){
background(255);
for(PVector p:pt){
ellipse(p.x,p.y,10,10);
}
if(ans!=null)ellipse(ans.x,ans.y,15,15);
}
PVector ans=null;
void mouseDragged(){//拖曳
if(mouseButton==CENTER && ans!=null){
ans.x=mouseX;
ans.y=mouseY;
}
}
void mousePressed(){
if(mouseButton==LEFT) pt.add(new PVector(mouseX,mouseY));
else if(mouseButton==CENTER){
for(PVector p:pt){
if(dist(p.x,p.y,mouseX,mouseY)<5){
ans=p;
}
}
}
}
可以刪除點.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
沒有留言:
張貼留言