初心者質問: 私はJavaスクリプトでいくつかのランダムな点を作成します。どのように後で私はそれぞれの1つ1つを「呼び出す」ことができますか?私はそれがオブジェクト(すべての点のリスト)と呼ばれ、リスト内の位置を操作したり、必要なものを「引き出す」ことができると信じています。どのように私はjsでそれを行うのですか?用ランダムな点のThree.jsリスト
var dots = [];
:
ラインは何ですか? それ以降のコメントは他の人から追加されたもので、私はそれを取得しません。
Three.jsの2つの点の間に線を作るにはどうすればいいですか(リストの最初と2番目 - 0と1を考えてみましょう)?
もっと複雑な質問:ここでは、JavaスクリプトのX(この場合は20個)のランダムな点を作成します。私はランダムに3点のグループを使用して顔を作成し、メッシュを形成する方法を見つけようとしています。
私は結果が必要なので、ランダムではありません。すべての顔が連続したメッシュで結びついているからです。結果は、多くの頂点からなる地形のポリサーフェスのように見えるはずです。
var numpoints = 20;
var dots = []; //If you want to use for other task
for (var i = 0 ; i < numpoints ; i++) {
var x = Math.random() * (80 - 1) + 1 //Math.random() * (max - min) + min
var y = Math.random() * (80 - 1) + 1
var z = Math.random() * (10 - 1) + 1
var dotGeometry = new THREE.Geometry();
dots.push(dotGeometry);
dotGeometry.vertices.push(new THREE.Vector3(x, y, z));
var dotMaterial = new THREE.PointCloudMaterial({ size: 3, sizeAttenuation: false, color: 0xFF0000 });
var dot = new THREE.PointCloud(dotGeometry, dotMaterial);
scene.add(dot);
}
アップフェイスとみなされるためグループ化が少し難しくなります(両面材を使用しない限り、私は考えるより激しくなります)、アップフェイスは軸の周りに時計回りにあるので、時計回りの点としてそれらを調べる方法...それは複雑です。しかし、簡単に点を作成し(新しいTHREE.Vector3(x、y、z))、ジオメトリに追加することができます(新しいTHREE.Geometry.vertices.push(point1、point2、...))。面を作成するには、 '新しいTHREE.Face3(pointVertexIndex1、pointVertexIndex2、pointVertexIndex3)'(Geometry.facesにプッシュ)を使用できます。 – somethinghere
'var dots = [];'は 'var dots = new Array()'と同じです。コメントは無意味です。 –