Anfänger Frage: Ich erstelle einige zufällige Punkte in Java-Skript. Wie kann ich später jeden Einzelnen "anrufen"? Ich glaube, es wurde ein Objekt (die Liste aller Punkte) genannt, wo ich ihre Position in der Liste manipulieren oder die benötigten "ziehen" kann. Wie mache ich das in js?Three.js Liste der zufälligen Punkte
was ist die Zeile:
var dots = [];
für? Der Kommentar danach wurde von einer anderen Person hinzugefügt und ich verstehe es nicht.
Wie kann ich eine Linie zwischen zwei Punkten (sagen wir die erste und zweite aus der Liste - die 0 und die 1) in Three.js?
Kompliziertere Frage: Ich erstelle hier X (in diesem Fall 20) zufällige Punkte in Java Script. Ich versuche einen Weg zu finden, wie man Gesichter zufällig mit Gruppen von 3 Punkten erzeugt und ein Netz bildet.
Nun, nicht so zufällig, weil ich ein Ergebnis benötige, wo alle Gesichter in einem kontinuierlichen Netz zusammenbinden. Das Ergebnis sollte wie eine Terrain-Poly-Oberfläche aussehen, die aus den vielen Eckpunkten besteht.
Welche Regeln sollten angewendet werden?
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);
}
Die Gruppierung ist ein wenig schwieriger wegen dem, was man als ein Upface betrachtet (es sei denn du verwendest ein zweiseitiges Material, das intensiver zu verarbeiten ist), ein Upface ist im Uhrzeigersinn um die Achsen, also müsstest du a finden Weg sie als Punkte im Uhrzeigersinn zu untersuchen ... Das ist kompliziert. Aber Sie können einfach Punkte erstellen ('new THREE.Vector3 (x, y, z)'), fügen Sie sie zu einer Geometrie hinzu (new THREE.Geometry.vertices.push (point1, point2, ...)). Um die Flächen zu erstellen, können Sie 'new THREE.Face3 (pointVertexIndex1, pointVertexIndex2, pointVertexIndex3)' verwenden (drücken Sie auf Geometry.faces). – somethinghere
'var dots = [];' ist identisch mit 'var dots = new Array()'. Der Kommentar ist bedeutungslos. –