スクリプトガイド > 3Dシーン > 表示領域の設定 > 透視投影シーンのセットアップ
公開日: 04/01/2021

透視投影シーンのセットアップ

JSLで透視投影のシーンを構築するには、Perspectiveコマンドを表示に送ります。

Perspective (angle, near, far)

上の図に示しているように、angleは視角、nearは近い平面までの距離、farは遠い平面までの距離です。表示領域を定義するときは、次の2つのことに留意する必要があります。

近い(near)平面より前方、または遠い(far)平面より後方にある要素のように、表示領域の外にある要素は描画されません。それらの要素は表示されません。

nearに対するfarの比は小さくする必要があります。小さい方が、レンダリングエンジンが各要素をシミュレートする時、他の要素の「手前」に描くべき要素を効率よく判定するからです。near引数の値はゼロより大きくなければなりません。

「Hello World」を描くスクリプトには、次の行が含まれています。

scene << Perspective( 45, 3, 7 ); // カメラを定義する

これは、視角が45度、近い平面までの距離は3単位、遠い平面までの距離は7単位であることを定義しています。

視角は、カメラの広角レンズまたは望遠レンズと同じ働きをします。視角が小さければ図が拡大され、大きければ縮小されます。つまり、視角が小さければ、小さい大きさのシーンに3次元空間が写されるので、シーンのなかの要素が大きく見えます。視角が大きければ、大きな大きさのシーンに3次元空間が写されるので、シーンのなかの要素が小さく見えます。したがって、シーンにおける要素の大きさは、Perspective関数のangle引数を使って操作できます。次の図は、角度を45度と90度に設定した透視投影による「hello world」スクリプトの例です。

図13.6 投影法の変更 

Image shown here

Perspectiveコマンドの代わりに、Frustumコマンドで視野の四角錐台を定義することもできます。

Frustum(left, right, bottom, top, near, far);

四角錘台における近い方の平面の左下隅と右上隅の(x, y, z)座標が、(left, bottom, near)と(right, top, near)で定義されます。nearには近いクリップ平面までの距離を、farには遠いクリップ平面までの距離を指定します。

より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).