Processing 入门教程(七)3D地球

直接看注释吧,不啰嗦勒

void setup() {
  // 全屏
  fullScreen(P3D);
  // 文字大小
  textSize(32);
}
float timer = 0;
void draw() {
  //背景
  background(0);
  // 绿色边框
  stroke(#74F599);
  //不设置填充
  noFill();
  // 环境光
  lights();
  //将当前变换矩阵推送到矩阵堆栈
  pushMatrix();
  translate(width/2, height/2, 200 * sin(timer));
  // 鼠标左键拖动旋转
  if (mouseButton == LEFT) {
    rotateX(mouseY * 0.05);
    rotateY(mouseX * 0.05);
    // 通过调整球体网格的顶点数量来控制用于渲染球体的细节。默认分辨率为30
    sphereDetail(mouseX / 4);
  }
  // y 轴旋转
  rotateY(timer);
  
  // x 轴旋转30
  rotateX(PI/6);
  
  //球密度
  sphere(300);
  // 球体中部文字
  textMode(CENTER);
  fill(255, 0, 0);
  text("Hello world,My name is liShengFu!", -300, 0, 0);
  popMatrix();
  
  timer = (timer+0.01)%TWO_PI;
  text(year() + "年"  + month()+ "月" + day()+ "日" +hour()+ "时" + 
    minute()+ "分" +second()+ "秒", 50, height-50, 0);
}

void mouseClicked() {  
  // 鼠标右键保存图片
  if (mouseButton == RIGHT) {          
    String picName = "PDE_" + year()+ "_" + month()+"_" + day()+"_" +   
      hour()+"_" + minute()+"_" + second();  
    save(picName + ".png");  
    println(" ----> Picture saved.");
  }
} 

效果图如下:

Processing 入门教程(七)3D地球_第1张图片

你可能感兴趣的:(Processing)