设置 3D 草图中当前摄像机的视锥体。
在锥形投影中,距离相机更远的形状比靠近相机的形状看起来更小。这种称为透视缩短的技术可以创建逼真的 3D 场景。
frustum()
通过改变其视锥体来改变相机的透视。视锥体是相机可见的空间体积。视锥体的形状是一个顶部被切掉的金字塔。相机放置在金字塔原来的顶部位置,并朝向金字塔的底部。它查看视锥体内的所有内容。
前四个参数 left
, right
, bottom
, 和 top
设置视锥体的左右个平面、底部平面和顶部平面的坐标。例如,调用 frustum(-100, 100, 200, -200)
创建一个宽度为 200 像素、高度为 400 像素的视锥体。默认情况下,这些坐标根据绘图的宽度和高度设置,如 ortho(-width / 20, width / 20, height / 20, -height / 20)
。
最后两个参数 near
和 far
设置视锥体近面和远面与相机的距离。例如,调用 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])
参数
视锥体左侧平面的 x 坐标。默认为 -width / 20
。
视锥体右侧平面的 x 坐标。默认为 width / 20
。
视锥体底部平面的 y 坐标。默认为 height / 20
。
视锥体顶部平面的 y 坐标。默认为 -height / 20
。
视锥体近平面的 z 坐标。默认为 0.1 * 800
。
视锥体远平面的 z 坐标。默认为 10 * 800
。
相关参考
camera
设置相机的位置和朝向 myCamera.camera() 允许从不同角度查看对象。它有九个参数,全部都是可选的。 前三个参数 x、y 和 z 是相机在“世界”空间中的位置坐标。例如,调用 myCamera.camera(0, 0, 0) 会将相机放置在原点 (0, 0, 0)。默认情况下,相机被放置在 (0, 0, 800)。 接下来的三个参数 centerX、centerY 和 centerZ 是相机在“世界”空间中指向的点的坐标。例如,调用 myCamera.camera(0, 0, 0, 10, 20, 30) 会将相机放置在原点 (0, 0, 0) 并将其指向 (10, 20, 30)。默认情况下,相机指向原点 (0, 0, 0)。 最后三个参数 upX、upY 和 upZ 定义“本地”空间中相机的“上”向量。 “上”向量定位相机的 y 轴。例如,调用 myCamera.camera(0, 0, 0, 10, 20, 30, 0, -1, 0) 会将相机放置在原点 (0, 0, 0),指向 (10, 20, 30),并设置“上”向量为 (0, -1, 0),产生的效果类似倒拿着相机。默认情况下,“上”向量是 (0, 1, 0)。 .
centerX
相机看向之处的 x 坐标。 默认情况下,相机在“世界”空间中看向原点 (0, 0, 0),因此 myCamera.centerX 为 0。 .
centerY
相机看向之处的 y 坐标。 默认情况下,相机在“世界”空间中看向原点 (0, 0, 0),因此 myCamera.centerY 为 0。 .
centerZ
相机看向之处的 z 坐标。 默认情况下,相机在“世界”空间中看向原点 (0, 0, 0),因此 myCamera.centerZ 为 0。 .