Contents
  1. 1. 创建3D图形
    1. 1.0.1. 创建3D画布
  2. 1.1. 盒模型
    1. 1.1.1. 3D坐标系统转换
  3. 1.2. 光线模型
    1. 1.2.1. 照明半径

创建3D图形

创建3D画布

1
size(x, y, P3D)

盒模型

1
box(size) //在左上角绘制边长为size的立方体

3D坐标系统转换

1
rotateY(map(mouseX, 0, width, -PI, PI)); //围绕y轴旋转,坐标/旋转范围

基于鼠标的简单 3D 旋转示例,很短,很酷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void setup() {
size(200, 200, P3D);
noFill();
smooth();
}
void draw() {
background(0);
translate(width/2, height/2, -(width/2)); //在中心绘图
rotateY(map(mouseX, 0, width, -PI, PI)); //水平旋转
stroke(100);
box(150);
rotateX(map(mouseY, 0, height, -PI, PI)); //竖直旋转
stroke(150);
box(75); //绘制立方体
}

光线模型

1
pointLight(50, 100, 180, 80, 20, 40); //RGB颜色和光源位置

照明半径

1
sphere(40); //照明半径为40,默认以(0, 0)为中心

举个例子(markdown不会发图好蛋疼)

1
2
3
4
5
6
size(100, 100, P3D);
background(0);
noStroke();
pointLight(50, 100, 180, 80, 20, 40); //设置光源
translate(20, 50, 0); //设置照明区域中心
sphere(40); //照明范围
Contents
  1. 1. 创建3D图形
    1. 1.0.1. 创建3D画布
  2. 1.1. 盒模型
    1. 1.1.1. 3D坐标系统转换
  3. 1.2. 光线模型
    1. 1.2.1. 照明半径