3DCGにおける線形代数 2 5404025 澄川 知弘
CGで使う座標 デカルト座標系・・・中学・高校で一般的に使う座標 極座標系・・・複素数と同じ表現
斉次座標(利点) ・平行移動を回転や拡大縮小と同じように行列の積で表せる ・透視投影を行列で表せるようになる
関係「~」の定義 𝑛+1次元ユークリッド空間 𝑅 𝑛+1 から原点𝑂を除いた 空間 𝑅 𝑛+1 − 𝑂 において 𝑥 1 , 𝑥 2 ,・・・, 𝑥 𝑛+1 ~ 𝑦 1 , 𝑦 2 ,・・・ 𝑦 𝑛+1 ⇔ 𝑥 1 =𝑡 𝑦 1 𝑥 2 =𝑡 𝑦 2 ・ ・ ・ 𝑥 𝑛+1 =𝑡 𝑦 𝑛+1 をみたす実数𝑡が存在する
n次元実射影空間(Pn) 𝑃 𝑛 :同値関係「~」による( 𝑥 1 , 𝑥 2 ,・・・, 𝑥 𝑛+1 ) を含む同値類を 𝑥 1 , 𝑥 2 ,・・・, 𝑥 𝑛+1 としたときの同値類全体の集合 𝑥 1 , 𝑥 2 ,・・・, 𝑥 𝑛+1 = 𝑦 1 , 𝑦 2 ,・・・ 𝑦 𝑛+1 ∣ 𝑦 1 , 𝑦 2 ,・・・ 𝑦 𝑛+1 ~ 𝑥 1 , 𝑥 2 ,・・・ 𝑥 𝑛+1
斉次座標(同次座標) 𝑃 𝑛 の点 𝑥 1 , 𝑥 2 ,・・・, 𝑥 𝑛+1 に対して 𝑦 1 , 𝑦 2 ,・・・, 𝑦 𝑛+1 ∈ 𝑥 1 , 𝑥 2 ,・・・, 𝑥 𝑛+1 となる 𝑛+1 個の実数の組 𝑦 1 , 𝑦 2 ,・・・, 𝑦 𝑛+1
ある次元空間における座標を1次元拡張して表現したもの 斉次座標(同次座標) 𝑃 𝑛 の点 𝑥 1 , 𝑥 2 ,・・・, 𝑥 𝑛+1 に対して 𝑦 1 , 𝑦 2 ,・・・, 𝑦 𝑛+1 ∈ 𝑥 1 , 𝑥 2 ,・・・, 𝑥 𝑛+1 となる 𝑛+1 個の実数の組 𝑦 1 , 𝑦 2 ,・・・, 𝑦 𝑛+1 ある次元空間における座標を1次元拡張して表現したもの
例(n=2) 𝑥,𝑦,𝑧 𝑧≠0 :直線𝐿で表される 𝑃 2 の点の斉次座標 𝑥,𝑦,𝑧 ~ 𝑥 𝑧 , 𝑦 𝑧 ,1 ⇔ 𝑥 𝑧 , 𝑦 𝑧 𝑃 2 上の点と 𝑅 2 上の点の1対1対応 平面 𝑅 2 上の任意の点𝑃 𝑥,𝑦 は 斉次座標が 𝑥,𝑦,𝑧 の 𝑃 2 上の点に対応
例(n=2) Z L (x,y,z) 1 (x/z,y/z,1) O y (x/z,y/z) x 𝑥,𝑦,𝑧 ~ 𝑥 𝑧 , 𝑦 𝑧 ,1 ⇔ 𝑥 𝑧 , 𝑦 𝑧 Z L (x,y,z) 1 (x/z,y/z,1) O y (x/z,y/z) x
[点の座標と位置ベクトルの成分表示を同一視] ベクトルと行列(変換) [点の座標と位置ベクトルの成分表示を同一視] (x',y')=f(x,y)において x'=ax+by , y'=cx+dy 𝑥′,𝑦′ = 𝑥𝑦 𝑎 𝑏 𝑐 𝑑
[点の座標と位置ベクトルの成分表示を同一視] ベクトルと行列(斉次座標) [点の座標と位置ベクトルの成分表示を同一視] (x',y')=f(x,y)において x'=ax+by , y'=cx+dy 𝑥′,𝑦′,1 = 𝑥𝑦1 𝑎 𝑐 0 𝑏 𝑑 0 0 0 1
原点の周りの角度θで回転した点(x',y',1)] 回転(原点基点) [点(x,y,1)を 原点の周りの角度θで回転した点(x',y',1)] 𝑥′,𝑦′,1 = 𝑥𝑦1 cos𝜃 −sin𝜃 0 𝑠𝑖𝑛𝜃 𝑐𝑜𝑠𝜃 0 0 0 1 y (x',y') θ (x,y) x
[点(x,y,1)がSsx,syで移された点(x',y',1)] 拡大縮小(原点基点) Ssx,sy・・・スケーリング定数がsx,syのスケーリング変換 [点(x,y,1)がSsx,syで移された点(x',y',1)] 𝑥′,𝑦′,1 = 𝑥𝑦1 𝑠𝑥 0 0 0 𝑠𝑦 0 0 0 1
[線分PP'の垂直2等分線がLになるような 点P’にPを移す変換] 座標軸に関する対称変換 直線Lに関する対称変換・・・点PをLに対して線対称な 点P'に移す変換 [線分PP'の垂直2等分線がLになるような 点P’にPを移す変換] y P''(-x,y) P(x,y) x 0 P'(x,-y)
[線分PP'の垂直2等分線がLになるような 点P’にPを移す変換] 座標軸に関する対称変換 ○x軸に関する対象変換 𝑥′,𝑦′,1 = 𝑥𝑦1 1 0 0 0 −1 0 0 0 1
[線分PP'の垂直2等分線がLになるような 点P’にPを移す変換] 座標軸に関する対称変換 ○y軸に関する対象変換 𝑥′,𝑦′,1 = 𝑥𝑦1 −1 0 0 0 1 0 0 0 1
平行移動 [点を元の場所から与えられた方向へ与えられた距離だけ 移動させる変換] 移動はベクトルで表せる (平行移動はすべての点を動かす) 平行移動 T で点Pが点P'に移すとき 𝑇は 𝑃𝑃 ′で定まる平行移動
平行移動 ベクトル v の定める平行移動 Tv について P'=Tv(P) とすると P(x,y) , P'(x',y')のとき 𝑂𝑃 ′= 𝑂𝑃 +𝑣,𝑣= 𝑡 𝑥 𝑖+ 𝑡 𝑦 𝑗 𝑖,𝑗:𝑥,𝑦軸の正方向の単位ベクトル P(x,y) , P'(x',y')のとき 𝑥′=𝑥+ 𝑡 𝑥 ,𝑦′=𝑦+ 𝑡 𝑦
[点(x,y,1)を Tv で平行移動した点(x',y',1)] 𝑥′,𝑦′,1 = 𝑥𝑦1 1 0 𝑡 𝑥 0 1 𝑡 𝑦 0 0 1