メインコンテンツ

投影法について

2 つのタイプの投影法

MATLAB® グラフィックスは 3 次元グラフィックスを表示するために、正投影と透視投影の 2 つのタイプをサポートしています。選択する投影法は、表示対象のグラフィックス タイプによって異なります。

  • orthographic は、直方体 (すなわち、6 つの長方形の面をもつ箱) として表示ボリュームを投影します。カメラからの相対距離により、オブジェクトのサイズが変わることはありません。この投影タイプは、オブジェクトの実際のサイズとオブジェクト間の角度を維持することが重要な場合に有効です。

  • perspective は、角錐台 (頂点が底面と平行に切断された角錐) として表示ボリュームを投影します。遠くのものは奥行きが短くなります。つまり、カメラから遠いオブジェクトは小さく見えます。この投影タイプは、実際のオブジェクトをリアリティのあるビューで表示したいときに有用です。

既定の設定では、MATLAB は正投影を使用してオブジェクトを表示します。camproj コマンドを使用して、投影タイプを設定することができます。

以下の図は、正投影である、patch を使用して作成した ダンプカーの描画と数学関数の表面プロットです。

ダンプカーを囲む箱の前面と後面の幅を測定すると、サイズが同じであることがわかります。この図は、人が奥行きのある実際のオブジェクトを見ると感じる遠近感が欠けているため、不自然に見えます。これに対し、表面プロットは四角形の空間内部の関数値を正確に示しています。

次に、同じグラフィックス オブジェクトに透視投影が付加されたものを見てみます。ダンプカーは、見ている人から遠くにある部分が小さく表現されているため、より自然に見えます。この投影法は、人の視覚機能を模しています。これに対し、表面プロットは歪んで見えます。

投影タイプとカメラ位置

既定では、MATLAB は座標軸の CameraPositionCameraTargetCameraViewAngle の各プロパティを調整して、カメラをシーンの中央に向け、すべてのグラフィックス オブジェクトを座標軸内に含めるようにします。グラフィックス オブジェクトがカメラの背後にあるようにカメラ位置を定めると、表示されるシーンは座標軸の Projection プロパティの値から影響を受ける可能性があります。Projection プロパティの値が "orthographic" の場合、CameraViewAngle プロパティにより、カメラのターゲットにおけるシーンの範囲が決定されます。Projection プロパティの値が "perspective" の場合、CameraViewAngle プロパティにより、カメラ位置から無限遠までのシーンの範囲が決定されます。

次の図は、正投影を使用した場合の可視領域 (グレーの塗りつぶし) を示しています。撮影者からカメラ前方にあるものすべてが見えます。

Orthographic projection illustration, with a target set up in front of the camera. All objects in front of the camera, including objects outside of the camera's angle of view, are visible.

透視投影を使用すると、撮影者からはカメラ画角のコーン角内のものだけが見えます。

Perspective projection illustration, with a target set up in front of the camera. Only the objects within the camera's angle of view are visible.

3 次元シーンの印刷とエクスポート

前のセクションで説明したのと同じ効果が、3 次元シーンの印刷されたハードコピーの出力およびエクスポートされたイメージに適用されます。

シーンをベクトル グラフィックス ファイルとしてエクスポートする場合は、Projection プロパティの効果を考慮してください。

  • "orthographic" の投影では、カメラの位置に関係なく、すべてのオブジェクトが表示されます。

  • グラフィックス オブジェクトがカメラ位置の背後にある場合、"perspective" の投影は推奨されません。

参考

プロパティ