これは私の講師が授業で私に言ったことです:
4 * 4の行列のみを考慮します。これらは、オブジェクト(またはこれらの操作の任意の組み合わせ)を回転、スケーリング、または移動するために使用されます。マトリックスは、仮想カメラモデルの実装でも使用されます。ベクトル変換と点変換の違いがわからない場合は、調べてください。
答えが見つからないようで、この質問のためだけにこのWebサイトのアカウントを作成しました。
これは私の講師が授業で私に言ったことです:
4 * 4の行列のみを考慮します。これらは、オブジェクト(またはこれらの操作の任意の組み合わせ)を回転、スケーリング、または移動するために使用されます。マトリックスは、仮想カメラモデルの実装でも使用されます。ベクトル変換と点変換の違いがわからない場合は、調べてください。
答えが見つからないようで、この質問のためだけにこのWebサイトのアカウントを作成しました。
回答:
これが簡単な答えです。
4Dでは、4x4行列を乗算できるように、ベクトルは(x、y、z、0)として表され、点は(x、y、z、1)として表されます。
4x4行列の4行目は行列の平行移動を表すため、上記の表現では、点は平行移動の影響を受けますが、ベクトルは影響を受けません。
ただし、ベクトルとポイントの両方は、回転、スケーリングなどの影響を受けます。
警告:
ベクトルに特定の特性があることを期待する場合は、より深い議論が必要です。たとえば、三角形の頂点を変換するのと同じ行列で三角形の法線を変換する場合、それは実際にはその三角形の法線ベクトルではなくなります。これは、法線ベクトルが、計算元の頂点に対して一種の逆の関係を持っているためです。
ここで問題は、3D座標系から4D座標系にどのように渡すかです。答えは「同質座標」です。
どうやってやるの?
方向ベクトルと位置ベクトルを区別します。名前が示すように、方向ベクトルには、方向ベクトルがあります。長さも重要ですが、位置は関係ないため、翻訳の影響は受けません。位置ベクトル(または単に「ポイント」)は移動または移動できます。それらは通常、起点を基準にして、つまり起点から点自体へのベクトルとして表されます。
ベクトルと点の定義を調べると、ベクトルは次のようになります。
速度など、量と方向によって完全に指定された量。 http://www.thefreedictionary.com/vector
そしてポイントは:
場所以外のプロパティを持たない無次元の幾何学的オブジェクト。 http://www.thefreedictionary.com/point
つまり、ベクトルはスケールのある方向であり、ポイントは位置です。
したがって、ベクトルを変換する場合は、それを回転およびスケーリングするだけです。ポイントを使用すると、ポイントも変換されます(ポイントの回転とスケーリングは、ポイント自体は回転できない単なる位置であるため、原点の周りにあります)。
ほとんどの場合、ベクトルとポイントは同じコンテナ、つまり4つのコンポーネントを持つベクトルに入れられます。唯一の違いはwコンポーネントです。wコンポーネントが0の場合、それは方向です。1の場合、ベクトルはポイントです。
この理由は、マトリックス自体にあります。これは、4x4行列で4つのコンポーネントを含むベクトルを乗算する方法を利用します。それがどのように機能するかわからない場合は、簡単なグーグルをお勧めします。
ご覧のとおり、最後のコンポーネントが0の場合、乗算は0であるため、結果は0になり、変換は行われません。
これにより、多角形のオブジェクトを含むコンピュータグラフィックスで簡単に使用できます。位置だけでなく法線も変換するための同じ変換行列があります。法線のwコンポーネントは0に設定されており、位置のwコンポーネントは1であるため、法線は回転するだけでなく、スケーリングも行われるため、変なものにつながる可能性があり、ほとんどの場合、法線は後で正規化されます。奇妙なもののため、実際には位置と回転に同じ行列を使用することをお勧めします!@JarkkoLのコメントを参照してください。)位置が変換されます(および原点を中心に回転およびスケーリングされます)。
私が間違いを犯さなかったことを願っています:P、そしてこれはあなたを助けました!