0
初學者問題: 我在java腳本中創建了一些隨機點。我怎樣才能稍後「打電話」他們中的每一個?我相信它被稱爲對象(所有點的列表),我可以在列表中操縱它們的位置或「拉」我需要的位置。我如何在js中做到這一點?Three.js隨機點列表
什麼是行:
var dots = [];
呢? 之後的評論是從另一個人添加的,我不明白。
如何在Three.js中的兩點之間(假設第一個和第二個來自列表 - 0和1)?
更復雜的問題:我在這裏創建X(在這種情況下20)Java腳本中的隨機點。我試圖找出一種方法來隨機創建使用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);
}
由於什麼被認爲是一個upface(除非你使用雙面材料,這是更強烈的處理我認爲),一個正面是圍繞軸線順時針旋轉,所以你將不得不找到一個以順時針方向檢查它們的方式......這很複雜。但你可以很容易地創建點('new THREE.Vector3(x,y,z)'),將它們添加到幾何體(new THREE.Geometry.vertices.push(point1,point2,...))。要創建面孔,可以使用'new THREE.Face3(pointVertexIndex1,pointVertexIndex2,pointVertexIndex3)'(push to Geometry.faces)。 – somethinghere
'var dots = [];'與'var dots = new Array()'相同。評論是沒有意義的。 –