私はいくつかの2D描画をしたいので、いくつかのマトリックス変換を実装したいと思います。私の軽い数学のバックグラウンドでは、C#でどのようにするのかを理解しようとしています(他のどの言語でもそれが明らかです)。なぜ2D変換に3x3行列が必要ですか?
私が読んだのは、翻訳に対処するために3x3行列を扱う必要があるということです。乗算を使って翻訳を行うことはできないからです。しかし、これは行列を乗算して変換を作成することになります。だから私たちのようなもので動作:
{ x1, x2, tx }
{ y1, y2, ty }
{ 0, 0, 1 }
私は3列目の平均値を理解するが、なぜ私たちは第三列が必要なのでしょうか?恒等行列だけでなく、回転、スケールまたは回転では、最後の行は同じです。私はそれが必要となるまだ到達していない操作はありますか? いくつかの言語(Java)が「二乗次元」配列でよりよく機能するためですか?もしそうなら、私は3列と2行をC#で使うことができます(ギザギザの配列もうまくいくので良いです)。例えば
、回転+平行移動のために、私はこの
{ cos(rot)*x1, (-sin(rot))*x2, tx }
{ sin(rot)*y1, cos(rot)*y2, ty }
{ 0, 0, 1 }
最後の行の必要がありませんように行列を持っています。
http://en.wikipedia.org/wiki/Translation_(geometry)で読書を開始し、http://en.wikipedia.org/wiki/Homogeneous_coordinatesへのリンクに従います –
@HighPerformanceMark私はここにいます私が理解していないこれらの概念のどの点を説明しようとしています。はい、私は読書を始めた2つの最初の文書です。 –