#1
by matrix太郎 » 4年前
座標変換に使っている行列ってやつは、線形代数でてくるヤツですよね。
入力座標を Xin Yin Zin Win
出力座標を Xout Yout Zout Wout
としたとき、
Xout = a*Xin + b*Yin + c*Zin + d* Win
Yout = e*Xin + f*Yin + g*Zin + h* Win
Zout = i*Xin + j*Yin + k*Zin + l* Win
Wout = m*Xin + n*Yin + o*Zin + p* Win
という式があったときに、この係数 a〜p だけを抜き出したものが行列になるわけですよね
a b c d
e f g h
i j k l
m n o p
ここで不思議なのは透視変換です。
透視変換って、たとえばスクリーン上でのx座標はz距離に比例ではなく反比例すると思うんです。
zが遠くなればなるほど、限りなくxはゼロに近づきますよね。このとき、Zout = 定数/Zin のような形になると思うのですが、行列で表すのは Zout = 定数 * Zin の形だけですよね?何故この反比例の形が行列で表現できるのでしょう???
座標変換に使っている行列ってやつは、線形代数でてくるヤツですよね。
入力座標を Xin Yin Zin Win
出力座標を Xout Yout Zout Wout
としたとき、
Xout = a*Xin + b*Yin + c*Zin + d* Win
Yout = e*Xin + f*Yin + g*Zin + h* Win
Zout = i*Xin + j*Yin + k*Zin + l* Win
Wout = m*Xin + n*Yin + o*Zin + p* Win
という式があったときに、この係数 a〜p だけを抜き出したものが行列になるわけですよね
a b c d
e f g h
i j k l
m n o p
ここで不思議なのは透視変換です。
透視変換って、たとえばスクリーン上でのx座標はz距離に比例ではなく反比例すると思うんです。
zが遠くなればなるほど、限りなくxはゼロに近づきますよね。このとき、Zout = 定数/Zin のような形になると思うのですが、行列で表すのは Zout = 定数 * Zin の形だけですよね?何故この反比例の形が行列で表現できるのでしょう???