⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shapetransform.pde

📁 This is processing for java examples.
💻 PDE
字号:
/** * Shape Transform * by Ira Greenberg.   *  * Illustrates the geometric relationship  * between Cube, Pyramid, Cone and  * Cylinder 3D primitives. *  * Instructions:<br /> * Up Arrow - increases points<br /> * Down Arrow - decreases points<br /> * 'p' key toggles between cube/pyramid<br /> */int pts = 4; float angle = 0;float radius = 99;float cylinderLength = 95;//verticesPVector vertices[][];boolean isPyramid = false;float angleInc;void setup(){  size(640, 360, P3D);  noStroke();  angleInc = PI/300.0;}void draw(){  background(170, 95, 95);  lights();  fill(255, 200, 200);  translate(width/2, height/2);  rotateX(frameCount * angleInc);  rotateY(frameCount * angleInc);  rotateZ(frameCount * angleInc);  // initialize vertex arrays  vertices = new PVector[2][pts+1];  // fill arrays  for (int i = 0; i < 2; i++){    angle = 0;    for(int j = 0; j <= pts; j++){      vertices[i][j] = new PVector();      if (isPyramid){        if (i==1){          vertices[i][j].x = 0;          vertices[i][j].y = 0;        }        else {          vertices[i][j].x = cos(radians(angle)) * radius;          vertices[i][j].y = sin(radians(angle)) * radius;        }      }       else {        vertices[i][j].x = cos(radians(angle)) * radius;        vertices[i][j].y = sin(radians(angle)) * radius;      }      vertices[i][j].z = cylinderLength;       // the .0 after the 360 is critical      angle += 360.0/pts;    }    cylinderLength *= -1;  }  // draw cylinder tube  beginShape(QUAD_STRIP);  for(int j = 0; j <= pts; j++){    vertex(vertices[0][j].x, vertices[0][j].y, vertices[0][j].z);    vertex(vertices[1][j].x, vertices[1][j].y, vertices[1][j].z);  }  endShape();  //draw cylinder ends  for (int i = 0; i < 2; i++){    beginShape();    for(int j = 0; j < pts; j++){      vertex(vertices[i][j].x, vertices[i][j].y, vertices[i][j].z);    }    endShape(CLOSE);  }}/* up/down arrow keys control polygon detail. */void keyPressed(){  if(key == CODED) {     // pts    if (keyCode == UP) {       if (pts < 90){        pts++;      }     }     else if (keyCode == DOWN) {       if (pts > 4){        pts--;      }    }   }  if (key =='p'){    if (isPyramid){      isPyramid = false;    }     else {      isPyramid = true;    }  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -