前回の第20回
面の塗り順をどう扱うか
3次元空間でオブジェクトを描く順序については,
- 第19回※1
並べ替えの仕方には,
さまざまなロジックがある。いずれにしても, 順に取出すふたつの値から並び方を決める。 「クイックソート」 を表すつぎの映像からイメージがつかめるかもしれない。
実は,
- 閉じた凸の多面体
- 面の裏は決して見えない
- 表向きの面は重ならない
2次元ベクトルの外積で面の裏表を調べる
そこで,
ベクトルは大きさと向きをもつ。けれど,
2次元平面の位置ベクトルA(ax, ay)とB(bx, by)の外積はA×Bで表し
- 2次元ベクトルA(ax, ay)とB(bx, by)の外積
- A×B =axby - aybx
ここで覚えていただきたいのは,
では,
実はこのために,
function getFacesVertices() {
var vertices = [
new Face(0, 1, 2, 3),
new Face(1, 5, 6, 2),
new Face(4, 0, 3, 7),
new Face(5, 4, 7, 6)
];
return vertices;
}
表向きの面のふたつのベクトルの位置関係を右ネジに定めれば,
- ※1
- ベクトルの外積は乗算ではない。そこで,
掛け算と区別するため, 記号 「×」 は 「クロス」 (cross) と読む。