![]() |
AW: Sierpinski Dreieck mit Lazarus
Bei diesem Ansatz wird zuviel auf einmal versucht und führt daher zu einem Kauderwelsch.
Überlegen wir uns doch mal, was der Herr Sierpinski uns wirklich erzählen möchte und folgen unbeirrt diesen Ausführungen: Zitat:
Da ist also ein Dreieck und aus diesem Dreieck werden drei Dreiecke berechnet.
Code:
Um die Berechnung für eine gewisse Iterations-Tiefe zu erstellen, müssen wir die Schritte ja für jedes Dreieck wiederholen
Funktion SierpinskiDreieck( EinDreieck ) liefert DreiDreiecke
Code:
Diese Liste an Dreiecken kann dann als Grundlage zum Zeichnen verwendet werden.
Funktion Sierpinski( EinDreieck, Tiefe ) liefert ListeMitDreiecken
EinDreieck an NeueListe hängen AktuelleTiefe ist 0 Solange AktuelleTiefe < Tiefe AktuelleTiefe um 1 erhöhen NeueListe in AktuelleListe kopieren NeueListe leeren Für alle Dreiecke in AktuelleListe SierpinskiDreieck( AktuellesDreieck ) an NeueListe hängen Ende Für Ende Solange NeueListe als Ergebnis zurückliefern
Code:
In dieser Zeichenroutine kann natürlich auch eine Skalierung erfolgen um beliebig große Dreiecke auf einer beliebig großen Zeichenfläche darzustellen.
ZeichneDreieck( Canvas, EinDreieck )
ZeichneDreiecksListe( Canvas, ListeMitDreiecken ) Für alle Dreiecke in ListeMitDreiecken ZeichneDreieck( Canvas, AktuellesDreieck ) Ende Für |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz