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

本博客介绍了一个使用Processing编程实现的3D动态球体,球体上显示Hello World, My name is liShengFu!,并随时间旋转。同时,代码在屏幕底部显示了实时的日期和时间。当用户点击鼠标右键时,当前画面会被保存为PNG图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接看注释吧,不啰嗦勒

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.");
  }
} 

效果图如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值