void setup(){
size(400,400,P3D);//p語言的3D功能
}
void draw(){
background(#114514);
pushMatrix();
translate(mouseX,mouseY);
box(100);//正方形
popMatrix();
}
void setup(){
size(400,400,P3D);//p語言的3D功能
}
void draw(){
background(#114514);
pushMatrix();//備份矩陣
translate(mouseX,mouseY);
rotateY(radians(mouseX));//對Y軸轉動
rotateX(radians(mouseY));//對X軸轉動
fill(145,0,145);
box(100);
noFill();//透明
scale(2);//放大2倍
box(100);//雖然是100,但是被放大了
popMatrix();//還原矩陣
}
最終程式
ArrayList<PVector> pt;//大的資料結構
void setup(){
size(410,410,P3D);
pt = new ArrayList<PVector>();
}//初始化,把大的資料結構準備好(裡面放小的資料結構)
void draw(){
background(#FF0000);
for(PVector p : pt){
ellipse(p.x,p.y,10,10);
}
beginShape();
for(PVector p : pt){//特殊FOR迴圈,得小資料結構
vertex(p.x,p.y);
}
endShape();
}
void mousePressed(){
pt.add(new PVector(mouseX,mouseY));
}//大的資料結構裡加入小PVector物件
最終程式
ArrayList<PVector> pt;//大的資料結構
void setup(){
size(410,410,P3D);
pt = new ArrayList<PVector>();
for(int i=0;i<37;i++){
pt.add(new PVector(random(400),random(400)));
}
}
void draw(){
background(#FFFFFF);
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;
}
}
}else if(mouseButton==RIGHT){
for(int i=0;i<pt.size();i++){
PVector p = pt.get(i);
if(dist(p.x,p.y,mouseX,mouseY)<5){
pt.remove(i);
}
}
}
}
沒有留言:
張貼留言