201106Dez

JavaScript: Boolesche Operationen und 3D-Objekte

Wer mit 3D-Grundobjekten (3D Primitives) in JavaScript arbeiten möchte und dabei auf Boolesche Operationen (Addieren, Subtrahieren, Überschneiden) zurückgreifen will, kann sich die "Constructive Solid Geometry"-Bibliothek CSG.js ansehen. Die Bibliothek basiert auf dem Light.js-Framework und stammt ebenfalls von Evan Wallace, der seit geraumer Zeit mit sehr interessanten Projekten beeindruckt.

Constructive Solid Geometry - CSG.js

Die CSG-Library basiert auf BSP-Trees, wodurch die Verarbeitung von Polygonen sehr sauber funktioniert. Ein Beispiel-Snippet, mit ein Würfel und eine Kugel erzeugt werden:

  • var a = CSG.cube({ center: [-0.25, -0.25, -0.25] });
  • var b = CSG.sphere({ radius: 1.3, center: [0.25, 0.25, 0.25] });
  •  
  • // Boolesche Operationen anwenden
  • a.union(b)
  • a.subtract(b)
  • a.intersect(b)

Am Ende der Projekt-Website steht übrigens ein Textfeld bereit, mit dem in Echtzeit JavaScript ausgeführt und die Bibliothek getestet werden kann. Die Dokumentation steht hier bereit.