Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

rotate3d

回転モードの有効化

説明

回転モードを使用して、座標軸の 3 次元表示を対話的に回転してデータを探索できます。関数 rotate3d を使用して、回転モードの有効化または無効化と、その他の基本オプションの設定を行います。回転モードの動作をさらに制御するには、rotate3d オブジェクトを返して使用します。

3 次元バブル チャート、3 次元散布図、表面プロットを含むほとんどの 3 次元チャートで、回転モードはサポートされています。回転モードをサポートするチャートには通常、座標軸ツール バーに回転アイコン が表示されます。

また、既定で有効になっている組み込みの座標軸操作を使用して、対話的にデータを探索することもできます。たとえば、座標軸をドラッグすることにより、3 次元座標軸の表示を回転できます。組み込み操作では、操作モードを有効にする必要がなく、操作モードよりも応答が高速です。一方、回転モードを有効にして、回転の動作をカスタマイズできます。組み込み操作の詳細については、チャートの対話機能の制御を参照してください。

作成

説明

rotate3d option は、現在の Figure 内のすべての座標軸について、回転モードを設定します。たとえば、rotate3d on は回転モードを有効にし、rotate3d off は回転モードを無効にします。

回転モードが有効の場合、カーソルまたはキーボードを使用して座標軸の表示を回転します。

  • カーソル — 座標軸でカーソルをクリックしてドラッグします。

  • キーボード — 方位角を増減するには、右矢印 (→) キーまたは左矢印 (←) キーを押します。仰角を増減するには、上矢印 (↑) キーまたは下矢印 (↓) キーを押します。

一部の組み込み操作は、現在の操作モードに関係なく既定で有効になったままです。回転モードに依存しない組み込みの回転操作を無効にするには、関数 disableDefaultInteractivity を使用します。

rotate3d は回転モードを切り替えます。たとえば、回転モードが無効になっている場合、rotate3d を呼び出すと回転モードが有効になります。

rotate3d(fig,option) は、指定された Figure 内のすべての座標軸について、回転モードを設定します。たとえば、Figure fig 内のすべての座標軸について回転モードを有効にするには、rotate3d(fig,'on') を使用します。

rotate3d(ax,option) は、指定された座標軸について回転モードを設定します。たとえば、座標軸 ax について回転モードを有効にするには、rotate3d(ax,'on') を使用します。この構文は、App Designer で作成されたアプリ、および関数 uifigure を使用して作成されたアプリで使用します。 (R2023a 以降)

r = rotate3d は、現在の Figure に対して rotate3d オブジェクトを作成します。この構文は、回転モードとスタイルをカスタマイズするのに便利です。

r = rotate3d(fig) は、指定された Figure に対して rotate3d オブジェクトを作成します。

入力引数

すべて展開する

回転モードのオプション。次の値のいずれかとして指定します。

  • 'on' — 回転モードを有効にします。

  • 'off' — 回転モードを無効にします。一部の組み込み操作は、現在の操作モードに関係なく既定で有効になったままです。回転モードに依存しない組み込みの回転操作を無効にするには、関数 disableDefaultInteractivity を使用します。

ターゲット Figure。Figure オブジェクトとして指定します。ターゲット Figure を指定すると、現在または将来のすべての Axes の子にモードが設定されます。

ターゲット座標軸。Axes オブジェクトとして指定します。

プロパティ

すべて展開する

回転モードの状態。'off' または 'on' として指定します。

回転のメソッド。次の値のいずれかとして指定します。

  • 'orbit' — 座標軸全体を回転します。

  • 'box' — 座標軸のプロットボックスの外枠を回転します。'box' は、関数 uifigure を使用して、または MATLAB® Online™ で作成された Figure ではサポートされていません。

メモ

将来のリリースでは、このプロパティは無効になります。詳細については、バージョン履歴を参照してください。

回転前に実行する関数。次のいずれかの値として指定します。

  • 関数ハンドル

  • 関数ハンドルと追加の引数を含む cell 配列

  • ベース ワークスペース内で評価される有効な MATLAB コマンドまたは MATLAB 関数を含む文字ベクトル (非推奨)

回転を開始する際は、このプロパティを使用してコードを実行します。関数ハンドルを使用してこのプロパティを指定した場合、MATLAB は次の 2 つの引数をコールバック関数に渡します。

  • figure — 回転を実行している Figure オブジェクト。

  • axesStruct — 1 つのフィールド Axes (回転を実行している axes オブジェクト) を含む構造体。この引数をコールバック関数で使用しない場合は、チルダ文字 (~) に置き換えます。

コールバックの詳細については、グラフィックス オブジェクトのコールバックの作成を参照してください。

回転後に実行する関数。次のいずれかの値として指定します。

  • 関数ハンドル

  • 関数ハンドルと追加の引数を含む cell 配列

  • ベース ワークスペース内で評価される有効な MATLAB コマンドまたは MATLAB 関数を含む文字ベクトル (非推奨)

回転の終了後に、このプロパティを使用してコードを実行します。関数ハンドルを使用してこのプロパティを指定した場合、MATLAB は次の 2 つの引数をコールバック関数に渡します。

  • figure — 回転を実行している Figure オブジェクト。

  • axesStruct — 1 つのフィールド Axes (回転を実行している axes オブジェクト) を含む構造体。この引数をコールバック関数で使用しない場合は、チルダ文字 (~) に置き換えます。

コールバックの詳細については、グラフィックス オブジェクトのコールバックの作成を参照してください。

回転抑制のコールバック。次のいずれかの値として指定します。

  • 関数ハンドル

  • 関数ハンドルと追加の引数を含む cell 配列

  • ベース ワークスペース内で評価される有効な MATLAB コマンドまたは MATLAB 関数を含む文字ベクトル (非推奨)

定義する条件下で、このプロパティを使用して回転を抑制します。数値または logical 出力 1 (true) は回転を抑制し、数値または logical 出力 0 (false) は回転を許可します。関数ハンドルを使用してこのプロパティを指定した場合、MATLAB は次の 2 つの引数をコールバック関数に渡します。

  • axes — 回転を実行している axes オブジェクト。

  • eventData — 空の引数。この引数が使用されないことを示すには、関数定義の中で引数をチルダ文字 (~) に置き換えます。

関数ハンドルを使用してこのプロパティを指定する場合は、関数の出力を変数に代入しなければなりません。

コールバックの詳細については、グラフィックス オブジェクトのコールバックの作成を参照してください。

この プロパティ は読み取り専用です。

rotate3d オブジェクトの作成時に指定した Figure オブジェクト。Figure を指定しなかった場合、FigureHandle は、rotate3d オブジェクトの作成時にアクティブであった Figure になります。

レガシ モード。'on' または 'off' もしくは数値または logical 1 (true) または 0 (false) として指定します。'on' の値は true と等価であり、'off'false と等価です。したがって、このプロパティの値を logical 値として使用できます。値は OnOffSwitchState 型の on/off logical 値として格納されます。

このプロパティは、関数 uifigure を使用して、または MATLAB Online で作成された Figure の rotate3d オブジェクトにのみ適用されます。このプロパティを 'on' に設定すると、従来の Figure のモードの動作と一致するように UI figure の操作モードの動作が変更されます。詳細については、enableLegacyExplorationModes を参照してください。

このプロパティを 'on' に設定した後に 'off' に戻すことはできません。

オブジェクト関数

rotate3d オブジェクト関数を使用して、Figure 内の axes オブジェクトの回転動作をカスタマイズします。これらすべての関数について、axes オブジェクトおよび回転モード オブジェクトは同じ Figure に関連付けられていなければなりません。

setAllowAxesRotate

関数 setAllowAxesRotate は座標軸を回転する権限を設定します。

rotate3d オブジェクト r に対して、axes オブジェクトのベクトル axes と logical スカラー tf を入力として setAllowAxesRotate(r,axes,tf) を呼び出すと、その axes オブジェクトでの回転操作を有効または無効にできます。

setAllowAxesRotate を使用して axes の回転モードを有効にしても、Figure の回転モードは有効になりません。これを行うには、rotate3d オブジェクトの Enable プロパティを設定します。

isAllowAxesRotate

関数 isAllowAxesRotate は座標軸を回転する権限をクエリします。

rotate3d オブジェクト r に対して、axes オブジェクトのベクトル axes を入力として tf = isAllowAxesRotate(r,axes) を呼び出すと、axes と同じサイズの logical 配列 tf が返されます。tf は、その axes オブジェクトで回転操作が使用可能かどうかを示します。

isAllowAxesRotate を使用して axes の回転モードを返しても、Figure の回転モードは返されません。これを行うには、rotate3d オブジェクトの Enable プロパティにアクセスします。

すべて折りたたむ

3 次元プロットを作成して回転モードを有効にします。次に、座標軸を対話的に回転します。

surf(peaks)
rotate3d on

タイル表示チャート レイアウトで 2 つの座標軸を作成し、最初の座標軸でのみ回転モードを有効にします。

tiledlayout(1,2);
ax1 = nexttile;
surf(peaks)

ax2 = nexttile;
contour(peaks);

rotate3d(ax1,'on')

Tiled chart layout with rotate mode enabled for the first axes

トリガーする回転モード オブジェクトのボタンダウン コールバックを作成します。以下のコードを新規ファイルにコピーし、実行して、回転動作を確認してください。

function demo_mbd
    % Allow a line to have its own 'ButtonDownFcn' callback
    hLine = plot(rand(1,10),'ButtonDownFcn','disp(''This executes'')');
    hLine.Tag = 'DoNotIgnore';
    h = rotate3d;
    h.ButtonDownFilter = @mycallback;
    h.Enable = 'on';
    % mouse-click on the line
end

function [flag] = mycallback(obj,event_obj)
    % If the tag of the object is 'DoNotIgnore', then return true
    objTag = obj.Tag;
    if strcmpi(objTag,'DoNotIgnore')
       flag = true;
    else
       flag = false;
    end
end

詳細

すべて展開する

代替機能

座標軸ツール バー

一部のチャートでは、座標軸ツール バーの回転アイコン をクリックして、回転モードを有効にします。

バージョン履歴

R2006a より前に導入

すべて展開する