「ゲームプログラミング/3Dグラフィック」の版間の差分

削除された内容 追加された内容
263 行
 
=== 円柱面投影の透視投影 ===
ここでいう円柱とは、正円の円柱とする(正円柱)。
 
楕円柱は考えないでおく。
 
 
==== 視界をしめる角度の割合の算出 ====
実際の被写体の図形は3次元だが、説明の簡単化のため、二次元平面中での線分をもとに説明する。
348 ⟶ 353行目:
 
3D-CG そのもののビューワーなどのアプリケーション製作に必要な数学力とは、こういう「気づき」のできる能力のことです。けっして単に、直交行列の公式だけを知っていても、それだけでは役立たずになってしまいます。
 
* 余弦定理で上手くいく理由
もし正円柱に投影するのではなく、楕円柱に投影する場合を考えると、算出すべきは角度ではなく楕円弧の弧長である。
 
正円の場合、角度のラジアンから弧の長さを三角関数によって簡単に算出できるので、角度さえ算出できれば、あとは高校レベルの簡単な計算で処理できるというワケである。
 
高校3年~大学1年の微分積分で習う「楕円積分」という積分の公式で、コンピュータ数値計算の手法で楕円の弧の長さを求めることができる。
 
なおC言語では国際規格上ではC++などの規格で楕円積分をサポートしているが、だが実際のC言語界隈では情報が乏しく、教科書が乏しいので、あまり使わないほうがイイだろう。なおC++の規格では comp_ellint_1 などで楕円積分を定義している。その他の数学の特殊関数もC++では規格上は定義されている。)
 
なお、数学では、三角関数の楕円バージョンである楕円関数というのがある。楕円関数と、楕円積分の公式は、異なる。
 
 
 
==== 円柱投影の場合の視界の特徴 ====