多个随机点Three.js

时间:2016-06-06 21:35:26

标签: javascript three.js

我正在构建一个带有随机x,y,z的点(在x,y,z的某个min和max中)。 我如何乘以该点(例如20个点),但x,y和z也有不同的值(随机)。

//Math.random() * (max - min) + min
var x = Math.random() * (80 - 1) + 1
var y = Math.random() * (80 - 1) + 1
var z = Math.random() * (80 - 1) + 1


var dotGeometry = new THREE.Geometry();
dotGeometry.vertices.push(new THREE.Vector3( x, y, z));
var dotMaterial = new THREE.PointCloudMaterial( { size: 10, sizeAttenuation: false, color: 0xFF0000 } );
var dot = new THREE.PointCloud( dotGeometry, dotMaterial );
scene.add( dot );

我尝试了一些东西,但这个点一遍又一遍地在同一个位置上增加。

1 个答案:

答案 0 :(得分:0)

如果你想创建20个随机点,你只需要在 for循环中做同样的事情。我没有使用过Three.js库,但我认为它是这样的:

var NUM_POINTS = 20;
var dots = []; //If you want to use for other task

for (var i = 0 ; i < NUM_POINTS){
    var x = Math.random() * (80 - 1) + 1
    var y = Math.random() * (80 - 1) + 1
    var z = Math.random() * (80 - 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: 10, sizeAttenuation: false, color: 0xFF0000 } );
    var dot = new THREE.PointCloud( dotGeometry, dotMaterial );

    scene.add(dot);
}

有关for here

的更多信息 祝你好运!