参考 frustum()

frustum()

设置 3D 草图中当前摄像机的视锥体。

在锥形投影中,距离相机更远的形状比靠近相机的形状看起来更小。这种称为透视缩短的技术可以创建逼真的 3D 场景。

frustum() 通过改变其视锥体来改变相机的透视。视锥体是相机可见的空间体积。视锥体的形状是一个顶部被切掉的金字塔。相机放置在金字塔原来的顶部位置,并朝向金字塔的底部。它查看视锥体内的所有内容。

前四个参数 left, right, bottom, 和 top 设置视锥体的左右个平面、底部平面和顶部平面的坐标。例如,调用 frustum(-100, 100, 200, -200) 创建一个宽度为 200 像素、高度为 400 像素的视锥体。默认情况下,这些坐标根据绘图的宽度和高度设置,如 ortho(-width / 20, width / 20, height / 20, -height / 20)

最后两个参数 nearfar 设置视锥体近面和远面与相机的距离。例如,调用 ortho(-100, 100, 200, -200, 50, 1000) 创建一个宽度为 200 像素、高度为 400 像素的视锥体,距相机 50 像素开始,距相机 1,000 像素结束。默认情况下,近面设置为 0.1 * 800,即相机与原点之间的默认距离的十分之一。far 设置为 10 * 800,即相机与原点之间的默认距离的十倍。

注意:frustum() 只能在 WebGL 模式下使用。

示例

语法

frustum([left], [right], [bottom], [top], [near], [far])

参数

left
数字:

视锥体左侧平面的 x 坐标。默认为 -width / 20

right
数字:

视锥体右侧平面的 x 坐标。默认为 width / 20

bottom
数字:

视锥体底部平面的 y 坐标。默认为 height / 20

top
数字:

视锥体顶部平面的 y 坐标。默认为 -height / 20

near
数字:

视锥体近平面的 z 坐标。默认为 0.1 * 800

far
数字:

视锥体远平面的 z 坐标。默认为 10 * 800

Notice any errors or typos? Please let us know. Please feel free to edit src/webgl/p5.Camera.js and open a pull request!

相关参考