答えが盲目的に明白であるかどうかはわかりませんが、私にはわかりません。three.js を使用する Udacity で 3D Graphics クラスを実行しています。3D メッシュを生成する必要があるところまで来ました。
頂点はすべて正しく生成されていますが、面の生成に行き詰まっています。重ならない面を自動生成する明確な方法が思い浮かびません。ネットでいろいろと調べてみましたが、それに関する情報が見つかりません。それがばかばかしいほど明白なものなのか、それともあまり文書化されていないだけなのかはわかりません。コードは次のとおりです。
function PolygonGeometry(sides) {
var geo = new THREE.Geometry();
// generate vertices
for ( var pt = 0 ; pt < sides; pt++ )
{
// Add 90 degrees so we start at +Y axis, rotate counterclockwise around
var angle = (Math.PI/2) + (pt / sides) * 2 * Math.PI;
var x = Math.cos( angle );
var y = Math.sin( angle );
// YOUR CODE HERE
//Save the vertex location - fill in the code
geo.vertices.push( new THREE.Vector3(x, y, 0) );
}
// YOUR CODE HERE
// Write the code to generate minimum number of faces for the polygon.
// Return the geometry object
return geo;
}
面の最小数の基本式は n-2 であることを知っています。しかし、顔が重ならないようにする方法が思いつきません。誰にも仕事を任せたくないので、できる限り自分で解決したいと思っています。しかし、私を正しい方向に向けたり、公式などを教えてくれる人はいますか?