プログラムな日常>ウェブプログラム作品集>
二次元とそれ以上の「あおり」変換
(movement transformation in 2d or more)

rot-objside
z-objside
center-objside
focus-length
camera-angle
center-filmside
z-filmside
rot-filmside
show virtual

【二次元の「あおり」変換とは?】

ここでは、撮影される実体が平面(すなわち二次元)、また、フィルムもまた平面(すなわち二次元)という、普通の場合を問題にします。 撮影行為をする空間は三次元です。


【二次元「あおり」変換の自由度】

一次元「あおり」変換の自由度は、前回述べた通り4なのですが、同じことは、見方を変えてみれば下図の水色の矢印で書き込んだ4つの変数に集約されます。 すなわち、実物平面とフィルム面とが交わる実物上の位置、フィルム上の位置、また、レンズの位置(x および y)。 実物平面とフィルム面の角度というのを制御していたが、アフィン変換(前回の「afine-1」および「afine-2」)には不変なことから吸収されるので、特に考慮を加える必要はありません。

二次元になると、赤で書き込んだ要素が加わる。実物の奥行位置、フィルムの奥行位置、実物の(実物面内の)回転角、フィルムの(フィルム面内の)回転角です。 結局、一次元では4自由度だったが、二次元では8自由度になります。

     

この8自由度は、四角形の4点が面内で占める位置の自由度に一致します。 実際、四角形(それは正方形と特定しても良いと思う)がどう描かれるかを特定するならば、同じ面内の全ての点がどう射影されるかは完全に決まると思われます。 なお、この一意性は「あおり」変換を一回だけ適用した結果についてで、「あおり」変換を二回以上適用した結果全体については同じ保証はありません。

この(「あおり」一回の)変換においては、美術や製図の時間に習ったパースの描き方が正しいことを追認します。 すなわち、直線は必ず直線に変換される、平行線は地平線上の一点に収束する、といった特徴があります。


【ウェブプログラムの機能】

動作が重く、スクロールバーを動かしてすぐ描画するようにはしなかったので、「redraw」を押して下さい。

「show virtual」をチェックすると、虚像も描画します。


【一般次元「あおり」変換の自由度】

一次元の「あおり」の自由度4を基本として、N 次元の「あおり」では、実物側とフィルム側に併進自由度 N-1、さらに、N-1 次元の回転の自由度 RN の2倍(実物側とフィルム側)が加えられ、 この RN は、 N(N-1)/2 であって、一般の線形変換の自由度 N2 を、自由度 N(N+1)/2 の対称行列と、自由度 N(N-1)/2 の直交行列との積に分解できることから明らかと思うが、改めて整理を考えています。 結局、N 次元の「あおり」の自由度 MN は、4+2*(N-1)+N(N-1) = N2+N+2 になり、線形変換の自由度 LN、アフィン変換の自由度 AN などと共にまとめると下表のようになります。 「あおり」変換の自由度は、アフィン変換の自由度に2を加えたものになっています。

各変換の次元ごとの自由度
次元
1 2 3 4 N
変換の種類 線形変換 LN 1 4 9 16 N2
アフィン変換 AN 2 6 12 20 N2+N
回転 RN 0 1 3 6 (N2-N)/2
「あおり」変換 MN 4 8 14 22 N2+N+2