三角形面の法線ベクトルを求める 𝑦 𝑂 は外接球の中心 𝑂𝐴 = 𝑂𝐵 = 𝑟0 𝑂 𝐴 𝐻𝐵 = 𝑟1 𝑧 𝑂𝐻 = ℎ 𝐴𝐵 = 𝐵𝐶 = 𝑠 𝑟0 𝑟0 𝑂 8,9 5 𝐷 ℎ 𝑟02 = 𝑟12 + ℎ2 𝑃0 𝑥0 , 𝑦0 , 𝑧0 𝑢𝑦 𝑣𝑧 − 𝑢𝑧 𝑣𝑦 𝑵 = 𝑼 × 𝑽 = 𝑢𝑧 𝑣𝑥 − 𝑢𝑥 𝑣𝑧 𝑢𝑥 𝑣𝑦 − 𝑢𝑦 𝑣𝑥 7 𝒏= 𝑵 𝑵 正規化 (大きさを1にする) (三角形HBCで,Hは正三角形BCDの外接円の中心) (三角形OBHで) 𝑠 2 = 𝑟12 + ℎ + 𝑟0 2 2 𝑟1 = 𝑟 3 0 2,3 𝑥2 − 𝑥0 𝑣𝑥 𝑽 = 𝑦2 − 𝑦0 = 𝑣𝑦 𝑧2 − 𝑧0 𝑣𝑧 𝑃1 𝑥1 , 𝑦1 , 𝑧1 CCWで番号をつける 10 1,4 𝐶 𝑠 = 3𝑟1 𝒏 法線ベクトル 𝑃2 𝑥2 , 𝑦2 , 𝑧2 𝑟1 H 𝐵 𝑥 𝒏を「𝑃0 , 𝑃1 , 𝑃2 の法線ベクトル」とする 0,6 11 𝑥1 − 𝑥0 𝑢𝑥 𝑼 = 𝑦1 − 𝑦0 = 𝑢𝑦 𝑧1 − 𝑧0 𝑢𝑧 2 (三角形ABHで) 1 ℎ = 𝑟0 3 𝐴: 0, 𝑟0 , 0 𝐵: 0, −ℎ, 𝑟1 頂点の座標 点番号 座標 各面の法線ベクトル 各面の法線ベクトルはその 面を構成する頂点の 法線ベクトルとして指定する ことになっている 点番号 (面を構成 する点番 号) 点における 法線ベクトル (=面の法線ベクトル) 描かれる三角形 (CW:時計回り,CCW:反時計回り) 点番号 三角形 0,1,2 CCW 3,4,5 CCW ABC の法線ベクトル 6,7,8 CCW 3,4,5 CBD の法線ベクトル 9,10,11 CCW 6,7,8 ACDの法線ベクトル 9,10,11 DBA の法線ベクトル 0,6,11 A 2 2 𝐶: 𝑟1 𝑠𝑖𝑛 𝜋, −ℎ, 𝑟1 𝑐𝑜𝑠 𝜋 3 3 1,4,10 B 0,1,2 4 4 𝐷: 𝑟1 𝑠𝑖𝑛 𝜋, −ℎ, 𝑟1 𝑐𝑜𝑠 𝜋 3 3 2,3,7 C 5,8,9 D GLES20.glDrawElements(GLES20.GL_TRIANGLES, numIndexs, GLES20.GL_UNSIGNED_BYTE, indexBuffer); 正四面体の描き方 個々の三角形を連続して描く
© Copyright 2024 ExpyDoc