📜  p5.js perspective() 方法

📅  最后修改于: 2022-05-13 01:56:23.045000             🧑  作者: Mango

p5.js perspective() 方法

p5.js 中的perspective()函数用于在 3D 草图中定义相机的透视投影。

靠近相机的物体会显示其真实尺寸,而远离相机的物体会显得比真实尺寸小。这被称为透视缩短。这个函数的参数定义了一个截棱锥形状的观察体。可以使用给定的参数设置视野、纵横比、近剪裁平面和远剪裁平面。

句法:

perspective([fovy], [aspect], [near], [far])

参数:此函数接受上面提到的四个参数,如下所述:

  • fovy:这是一个数字,用于定义从底部到顶部看到的相机平截头体垂直视野。这是一个可选参数。
  • aspect:这是一个定义相机平截头体纵横比的数字。这是一个可选参数。
  • near:这是一个定义平截头体近平面长度的数字。这是一个可选参数。
  • far:这是一个定义平截头体远平面长度的数字。这是一个可选参数。

下面的例子说明了 p5.js 中的perspective()函数

例子:

Javascript
function setup() {
  createCanvas(600, 400, WEBGL);
}
  
function draw() {
  background(175);
    
  // Map the fov to the mouse x-axis
  let fov = map(mouseX, 0, width, 0, PI);
  let cZ = (height/2.0) / tan((PI/3)/2.0);
    
  // Set the perspective to the fov
  perspective(fov, float(width)/float(height),
              cZ/10.0, cZ*10.0);
    
  ambientLight(255);
    
  rotateZ(frameCount * 0.02);
  rotateX(frameCount * 0.02);
  
  noStroke();
  normalMaterial();
  box(100, 100, 100);
    
}


输出:


参考: https://p5js.org/reference/#/p5/perspective