Zeichnen Sie eine Kugel mit 3D-Pixel (Voxel-Sculpting -)

Können Sie vorschlagen, ein Algorithmus, der zeichnen kann, der eine Kugel im 3D-Raum mit nur die grundlegenden plot(x,y,z) primitiv (was zeichnet ein einzelnes voxel)?

Ich hatte gehofft, für etwas ähnliches wie Bresenham-Kreis-Algorithmus, aber für 3D statt 2D.

Zur info, ich arbeite an einer hardware-Projekt ist ein low-res-3D-display mit einem 3-dimensionalen matrix von LEDs, so muss ich eigentlich ziehen eine Sphäre, die nicht nur eine 2D-Projektion (d.h. Kreis).

Das Projekt ist sehr ähnlich wie diese:

Zeichnen Sie eine Kugel mit 3D-Pixel (Voxel-Sculpting -)

... oder sehen Sie es in Aktion hier.

Eine Möglichkeit, die ich im Sinn habe, ist dies:

  • berechnen der Y-Koordinaten der Pole (den radius) (für eine Kugel zentriert im Ursprung, diese wäre -r und +r)
  • schneiden Sie die Kugel: für jede horizontale Ebene pi - zwischen diesen Koordinaten berechnen Sie den radius des Kreises, die durch sich schneidende, sagte Flugzeug mit dem Bereich => ri.
  • zeichnen die tatsächliche Kreis der radius ri auf Ebene pi mit Bresenham ' s Algorithmus.

FWIW, ich bin mit einem .NET-micro-framework-Mikroprozessor, so ist die Programmierung in C#, aber ich muss nicht Antworten werden in C#.

  • Die Beurteilung durch die LED-Kugel sollten wir davon ausgehen, müssen Sie das innere der Kugel gezeichnet als auch irgendwie?
  • Ich denke nicht so. In diesem Fall würde er nicht darüber reden Bresenham-Kreis Rasterung und konnte einfach japreiss' brute-force-Lösung.
  • Eigentlich hätte ich gerne beide Optionen.
  • In diesem Fall, ich schlage vor, mit der brute-force-Algorithmus zum generieren der solid-version, und verwenden Sie dann eine morphologische operation, um die Oberfläche. Solid - Erode(Solid) sollte den trick tun.
  • Ich bin mir nicht sicher, aber vielleicht habe ich Ihre Frage beantwortet mit einem Bresenham-wie Kugel-Algorithmus hier: stackoverflow.com/questions/9683965/...
Schreibe einen Kommentar