Processing

PythonでProcessing Camera perspective()

遠くの物体が近くの物体よりも小さく見えるように、前景縮小を適用した透視投影を設定する。パラメータは、切り捨てられたピラミッドの形をしたビューイングボリュームを定義する。ボリュームの前面に近いオブジェクトは実際のサイズで表示され、遠くのオブジェクトは小さく表示される。このプロジェクションは、正射影よりも正確に世界の遠近感をシミュレートする。パラメータのないバージョンの perspective は、デフォルトの遠近感を設定し、4つのパラメータを持つバージョンでは、プログラマーが領域を正確に設定できる。デフォルト値は、perspective(PI/3.0, width/height, cameraZ/10.0, cameraZ/10.0) ここで cameraZ は ((height/2.0) / tan(PI60.0/360.0))

size(300, 300, P3D)
noFill()

fov = PI/3.0
cameraZ = (height/2.0) / tan(fov/2.0)
perspective(fov, float(width)/float(height), 
            cameraZ/10.0, cameraZ*10.0)
translate(180, 180, 0)
rotateX(PI/6)
rotateY(PI/3)
box(150)