初学者问题:
我在Java脚本中创建了一些随机点。我以后如何才能“呼叫”它们中的每一个?我相信它被称为对象(所有点的列表),在这里我可以操纵它们在列表中的位置或“拉”我需要的位置。我该如何在js中做到这一点?

什么是线:

var dots = [];为?
此后的评论是从另一个人添加的,我不明白。

我如何在Three.js中的两点之间划一条线(假设列表中的第一点和第二点-0和1)?

更复杂的问题:我在Java脚本中创建X个(本例中为20个)随机点。我试图找出一种方法,可以使用3个点的组随机创建面并形成网格。

好吧,不是那么随意,因为我需要一个结果,所有的面都以连续的网格绑定在一起。结果应该看起来像是由多个顶点组成的地形多曲面。

应该应用什么规则?
javascript - Three.js随机点列表-LMLPHP

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);
}

最佳答案

要从数组中获取随机元素:

function randChoice(array){
    return array[Math.floor(Math.random()*array.length)];
};


有两种从随机点生成网格的方法,我知道:
convex hullalpha shape。通过重复选择3个随机点来创建网格几乎肯定会导致意大利面。

如果只想生成如图所示的地形,则有terrain generation from heightmap

关于javascript - Three.js随机点列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37793750/

10-16 21:12