メインコンテンツ

camlight

カメラの座標系内で light オブジェクトを作成または移動する

    説明

    camlight は、カメラの位置の右上にライトを作成します。

    camlight(position) は、指定された位置にライトを作成します。たとえば、camlight("left") はカメラの位置の左上にライトを作成します。

    camlight(az,el) は、カメラの位置に対して指定された方位角 az と仰角 el でライトを作成します。カメラのターゲットが回転の中心です。

    camlight(___,style) は、指定されたライトのスタイルでライトを作成します。

    camlight(lt,___) は、新しいライトを作成するのではなく指定されたライトを使用します。最初の引数として lt を、その後に前述の構文の任意の入力引数の組み合わせを指定します。

    camlight(ax,___) は、現在の座標軸 (gca) ではなく、ax によって指定された座標軸にライトを作成します。前述の任意の構文で、最初の引数として座標軸を指定します。

    cl = camlight(___)Light オブジェクトを返します。ライトの作成後にライトを移動したりそのプロパティを変更したりするには、cl を使用します。プロパティの一覧については、Light のプロパティ を参照してください。

    すべて折りたたむ

    球面を作成し、そこにライトを照射します。カメラの位置の右上にライトを配置します。

    sphere
    axis equal
    camlight

    Figure contains an axes object. The axes object contains an object of type surface.

    カメラの位置の左上に 2 つ目のライトを追加します。

    camlight("left")

    Figure contains an axes object. The axes object contains an object of type surface.

    球面を作成し、そこにライトを照射します。カメラの位置の左上にライトを配置します。

    sphere
    axis equal
    cl = camlight("left");

    Figure contains an axes object. The axes object contains an object of type surface.

    カメラの位置の正面にライトを移動します。

    camlight(cl,0,0);

    Figure contains an axes object. The axes object contains an object of type surface.

    ライトを削除します。

    delete(cl)

    Figure contains an axes object. The axes object contains an object of type surface.

    R2019b 以降

    関数 tiledlayout および関数 nexttile を使用して、プロットをタイル表示できます。関数 tiledlayout を使用して、1 行 2 列のタイル表示チャート レイアウトを作成します。関数 nexttile を使用して、Axes オブジェクト ax1 および ax2 を作成します。各 Axes オブジェクトを surf および camlight の最初の引数として指定することで、表面と対応するライトを各プロットに作成します。

    左の座標軸で表面を作成し、ライトを無限遠に配置して、その表面に向かってまっすぐ照射します。右の座標軸で表面を作成し、ライトを無限遠に配置して、その表面の右上から照射します。

    tiledlayout(1,2)
     
    % Left surface
    ax1 = nexttile;
    surf(ax1,peaks,EdgeColor="none")
    lt1 = camlight(ax1,"headlight","infinite");
    title("Infinite light shining at surface")
     
    % Right surface
    ax2 = nexttile;
    surf(ax2,peaks,EdgeColor="none")
    lt2 = camlight(ax2,"right","infinite");
    title("Infinite light shining from the right of surface")

    Figure contains 2 axes objects. Axes object 1 with title Infinite light shining at surface contains an object of type surface. Axes object 2 with title Infinite light shining from the right of surface contains an object of type surface.

    入力引数

    すべて折りたたむ

    光源の位置。次の値の 1 つとして指定します。

    • "right" — カメラの位置の右上にライトを配置する

    • "left" — カメラの位置の左上にライトを配置する。

    • "headlight" — カメラの位置にライトを配置する。

    ライトの位置は、style 引数の値によって異なります。

    ライトの位置の方位角。度単位のスカラー値として指定します。

    ライトの位置の仰角。度単位のスカラー値として指定します。

    光源の種類。次の値の 1 つとして指定します。

    • "local" — ライトは点光源で、ライトの位置で指定した位置から全方向を照らします。

    • "infinite" — ライトは無限遠に配置され、ライトの位置で指定した方向に平行な光線を照射します。

    移動させるライト。Light オブジェクトとして指定します。

    ターゲット座標軸。Axes オブジェクトとして指定します。座標軸を指定しない場合、camlight は現在の座標軸に Light オブジェクトを作成します。

    ヒント

    • 関数 camlight は、Light オブジェクトの Position プロパティと Style プロパティを設定します。ライトはカメラを追跡しません。ライトがカメラに対して定位置となるようにするには、カメラを移動するたびに camlight を呼び出します。

    バージョン履歴

    R2006a より前に導入