3d 使用(高度/2.0)/tan(PI/6)作为相机的Z位置的目的是什么?

3d 使用(高度/2.0)/tan(PI/6)作为相机的Z位置的目的是什么?,3d,processing,3d,Processing,有人能解释为什么他们会将摄像机的z位置除以tan(PI/6),而不只是将其乘以任意的浮点数吗 这是Processing中的camera()函数,我试图理解它的默认参数 语法 camera(eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ) 默认参数 camera(width/2.0, height/2.0, (height/2.0) / tan(PI*30.0 / 180.0), width/2.0, height/2.0,

有人能解释为什么他们会将摄像机的z位置除以tan(PI/6),而不只是将其乘以任意的浮点数吗

这是Processing中的camera()函数,我试图理解它的默认参数


语法

camera(eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ)
默认参数

camera(width/2.0, height/2.0, (height/2.0) / tan(PI*30.0 / 180.0), width/2.0, height/2.0, 0, 0, 1, 0)
使用,对象的投影大小取决于到摄影机的距离。这只是一个经验公式,应该根据窗户的高度和视野给出合适的距离

在透视投影中,投影矩阵描述从针孔相机看到的世界中三维点到视口中二维点的映射。查看卷是一个


因为这比常量浮点除数更精确,我猜在透视投影中,对象的投影大小取决于到摄影机的距离。这只是一个经验公式,应该根据窗户的高度和视野给出合适的距离。