畫3D圖
void setup(){
size(400,400,P3D);//Processing 的3D功能
}
void draw(){
background(#FFFFF2);
pushMatrix();//備份矩陣
translate(mouseX,mouseY);//移動
box(100);//3D盒子,方塊
popMatrix();//還原矩陣
}
rotateY(radians(mouseX));//對Y軸轉
填色void setup(){
size(400,400,P3D);//Processing 的3D功能
}
void draw(){
background(#FFFFF2);
pushMatrix();//備份矩陣
translate(mouseX,mouseY);//移動
rotateY(radians(mouseX));//對Y軸轉
fill(0,255,0);//面填綠色
box(100);//3D盒子,方塊
noFill();//面部填色
scale(2);//放大2倍
box(100);
popMatrix();//還原矩陣
}
點size(410,410,P3D);
beginShape();
fill(255,0,0); vertex(200,0);
fill(0,255,0); vertex(0,400);
fill(0,0,255); vertex(400,400);
endShape();
如何解決不完整的三角形
size(410,410,P3D);
noFill();
beginShape();
vertex(200,0);
vertex(0,400);
vertex(400,400);
endShape();
endShape(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;//大的資料結構ArrayList
void setup(){
size(400,400,P3D);
pt = new ArrayList<PVector>();
}//初始化,把大的資料結構準備好(裡面放小資料結構)
void draw(){
background(#FFFFF2);
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;//大的資料結構ArrayList
void setup(){
size(400,400,P3D);
pt = new ArrayList<PVector>();
}//初始化,把大的資料結構準備好(裡面放小資料結構)
void draw(){
background(#FFFFF2);
pushMatrix();
if(mousePressed && mouseButton==RIGHT){
translate(200,200);
rotateY(radians(frameCount));
translate(-200,-200);
}
for(PVector p : pt){
ellipse(p.x,p.y,10,10);
}
beginShape();
for(PVector p : pt){//特殊for迴圈,得小資料結構
vertex(p.x,p.y);
}
endShape();
popMatrix();
}
void mousePressed(){
if(mouseButton==LEFT){
pt.add(new PVector(mouseX,mouseY));
}
}//大的資料結構裡,加入小的PVector的物件
void setup(){
size(400,400,P3D);
}
void draw(){
background(255);
if(mousePressed && mouseButton==LEFT) background(255,0,0);
if(mousePressed && mouseButton==CENTER) background(255,0,0);
if(mousePressed && mouseButton==RIGHT) background(255,0,0);
}
ArrayList<PVector> pt;
void setup(){
size(400,400,P3D);
pt = new ArrayList<PVector>();
for(int i=0;i<20;i++){
pt.add(new PVector(i*20,20));
}
}
void draw(){
background(255);
for(PVector p : pt){//畫20個頂點
ellipse(p.x,p.y,10,10);
}
if(ans!=null)ellipse(ans.x,ans.y,15,15);
}
PVector ans = null;
void mousePressed(){
for(PVector p : pt){
if(dist(p.x,p.y,mouseX,mouseY)<5){
ans = p;
}
}
滑鼠中鍵拖曳點
ArrayList<PVector> pt;
void setup(){
size(400,400,P3D);
pt = new ArrayList<PVector>();
for(int i=0;i<20;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;
}
}
}
}
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)) );
}//假設畫面中,點好了20個頂點
}
void draw(){
background(255);
for(PVector p : pt){//畫出20個頂點
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){//厲害的for迴圈(不能增刪裡面的東西)
if( dist(p.x, p.y, mouseX, mouseY) < 5){//找到購進的點
ans = p;
}
}
}
else if(mouseButton==RIGHT){//右鍵,要刪掉,要用傳統的for迴圈
for(int i=0; i<pt.size(); i++){//要寫2行,才能等於厲害的1行
PVector p = pt.get(i);//要寫2行,才能等於厲害的1行
if( dist(p.x, p.y, mouseX, mouseY) < 5){//找到購進的點
pt.remove(i);//就把第(i)個點刪掉(刪的時候會把大資料結構都左移動一格)
}
}
}
}














沒有留言:
張貼留言