Dies wurde während der Verwendung von Dreiecken() entdeckt, um ein Netz zum Interpolieren einiger Punkte zu erzeugen. Ich bemerkte, dass einige meiner Punkte nicht in Dreiecken waren. Ich war überrascht zu sehen, dass ein Dreieck im Netz fehlte. Meine Daten wurden auf 4 Scheitelpunkte reduziert, was zu 2 Dreiecken führen sollte, aber nur 1 ergibt. Ich habe versucht, die Scheitelpunkte etwas zu verändern, was zu der erwarteten Anzahl von Dreiecken führt.Warum fehlt im Rückgabewert von d3.voronoi.triangles ein Dreieck?
v = require("d3-voronoi").voronoi();
vertices = [[47.307,105.33],[51.707,104.13],[52.717,110.74],[53.917,106.34]];
console.log(v.triangles(vertices)); // returns 1 triangle
vertices[3][1] += 0.001 // tweak one of the values slightly
console.log(v.triangles(vertices)); // returns 2 triangles (as expected)
https://tonicdev.com/56f99ca738ca281100ea16ad/573f3672a04fd4110009ee44
Ich habe nicht viel Glück Schritt wenn d3-voronoi (Vergleich der Weg des Scheiterns der erfolgreichen Fall), seit ich mit dem Algorithmus nicht vertraut bin verwendet.
Ich vermute numerischen Fehler, aber ich bin mir nicht sicher, wie dieses Problem zu finden oder zu umgehen.
Auf der Suche nach Hilfe zur Lösung des Problems in D3-Voronoi (ideal), oder eine Empfehlung für eine andere (numerisch stabile) Mattengenerierungsfunktion.
entschieden. Ich habe diesen Fehler behoben, indem ich zu einem anderen Paket gewechselt habe: [delaunay-triangulate] (https://www.npmjs.com/package/delaunay -dianguliert) –