Main Content

カメラの平行移動

テクニックの概要

カメラにおける平行移動とは、シーンに対して左右に少しずつカメラを移動することです。camdolly コマンドは、カメラと被写体の両方に対して、(または必要に応じてカメラ側のみ) 同様な動作を可能にします。

次の例はイメージのさまざまな部分を表示するように、コマンド camdolly を使ったものです。以下の関数の使い方を示します。

  • ginput を使用して、イメージ上の位置の座標を得ます。

  • camdolly data 座標オプションを使用して、ginput を使用して得られた座標をもとに新しい位置にカメラとターゲットを移動します。

  • camva を使用して拡大したり、カメラの視点の角度を固定します。そうでない場合は、自動コントロールになります。

実装

まず、ケープコッドのイメージを読み込み、カメラの視点角 (camva を使用) を設定することで、拡大します。

load cape
image(X)
colormap(map)
axis image
camva(camva/2.5)

次に、関数 ginput を使用して、カメラの目標とカメラの位置の x 座標と y 座標を指定します。

while 1
  [x,y] = ginput(1);
  if ~strcmp(get(gcf,'SelectionType'),'normal')
    break
  end
  ct = camtarget;
  dx = x - ct(1);
  dy = y - ct(2);
  camdolly(dx,dy,ct(3),'movetarget','data')
  drawnow
end