Jako odpowiedź WestLangley mówi, że nie może tego zrobić.Oto prawda hacky obejście zdecydowałem się użyć:
- przeznaczyć więcej wierzchołków niż muszę wypełnić geometry.vertices z punktu początkowego linii mojego
- Jako nowe punkty przyjść że chcę dodać, przesunąć zawartość tablicy w lewo i napisać nowy punkt w ostatnim wpisie matrycy geometry.vertices
Kod: aby utworzyć nowy wiersz:
function createNewLine(startingPoint){
var geometry = new THREE.Geometry();
for (i=0; i<MAX_LINE_POINTS; i++){
geometry.vertices.push(startingPoint.clone());
}
myLine = new THREE.Line(geometry, lineMaterial);
myLine.geometry.dynamic = true;
scene.add(myLine);
render();
}
Aby dodać punkt do linii:
function addPoint(myPoint) {
myLine.geometry.vertices.push(myLine.geometry.vertices.shift()); //shift the array
myLine.geometry.vertices[maxLinePoints-1] = myPoint; //add the point to the end of the array
myLine.geometry.verticesNeedUpdate = true;
render();
}
Co w końcu z czym jest linia, która ma kilka punktów ułożone na wierzchu od siebie nawzajem, a następnie przez punkty rzeczywiście chcą render. Przesłałem problem do repozytorium git three.js, aby uzyskać prostsze rozwiązanie tego problemu. https://github.com/mrdoob/three.js/issues/4716
thanks.i Chyba będę po prostu usunąć i ponownie dodać nową linię każdą klatkę ... po prostu wydaje się bardziej nieefektywne – K2xL
myślę punkt WestLangley robił to, że staramy się robić to dynamicznie jest basicaly jako nieefektywne jak tylko tworząc w ten sposób całkowicie nową geometrię, dzięki czemu nie jest tak samo wydajna. – 0xor1
Dodałem wszystkie punkty do geometrii przez ten wiersz kodu: linegeometryX.vertices.push (nowy THREE.Vertex (nowe THREE.Vector3 (x, y, z))); Jak ukryć/zwinąć niepotrzebne wierzchołki? – Dipak