back: HIB Homepage
  Prof. Urban
Materialien für Mathematik, Physik, Informatik
 
 
zurück
 

Oskulierende Kugeln

Eine nette Aufgabe der Mathematik ist es, mehrere Kreise so anzuordnen, dass sie einander berühren (oskulieren bedeutet küssen). Wir wollen Kugeln unterschiedlichen Durchmessers so in einem Bereich anordnen, dass jede eine andere berührt.

Um eine hübsche Darstellung zu erhalten, soll unser Programm eine Include-Datei erstellen, die im Raytracer POV-Ray verarbeitet werden kann.

Wir wünschen uns:

  • es soll die Anzahl der Kugeln, ihre minimale und maximale Größe wählbar sein
  • der Bereich, in dem die Kugeln liegen, darf quadratisch oder kreisförmig sein, die Seitenlänge bzw. Durchmesser wählen wir ebenfalls
  • als Erweiterung lassen wir auch räumliche Bereiche, also Würfelform oder Kugel, zu
  • wir können die Kugeln unterschiedlich texturieren - dazu geben wir die Anzahl der vorbereiteten Texturen (in "MyTextures.inc") an und einen Skalierungsfaktor. Falls die Anzahl Null ist, bekommt das entstehende Objekt keine Textur. Zu Testzweecken verwenden wir die bekannten Stein-Texturen
  • nach der Berechnung und der Anzeige einer Vorschau schreiben wir die das Objekt auf Festplatte

 

Ein Beispiel in Rechtecksform:

 

Ein weiteres als 3D-Würfel:

 

Das entstehende Objekte ist eine union. Sie kann wie gewohnt bearbeitet werden. Dieses Beispiel zeigt einen Schnitt durch die oskulierenden Hohlkugeln:

 

Unser Programm wählt die Kugeln nach einer sehr simplen Strategie:

Die erste wird in die Mitte gesetzt. Nun wird immer wieder ein zufälliger Punkt gewählt und geprüft, ob er im zulässigen Bereich liegt. Dann wird eine Kugel untersucht, die bis zur nächstliegenden Kugel reicht (Berührbedingung). Diese wird akzeptiert, wenn der nötige Radius im erlaubten Bereich liegt.

So sieht das Programm aus:

 

Für eigene Experimente:

Speichere alles in ein Verzeichnis und leg los, indem Du ein neues Objekt erstellst und abspeicherst!


--- © Wolfgang.Urban@schule.at ---