Einleitung

Ich habe in der Spektrum der Wissenschaft Januar/2002 eine kleine nette Idee gefunden, die ich gleich mit PHP umsetzen musste:
DiffyQuadrate
diffyBild

Schwarze Löcher im Zahlenkosmos

Es sind Schwarze Löcher im Zahlenkosmos aufgestöbert worden, die wirklich alle Zahlen in sich hineinziehen. Bei einem der schönsten ist der Ausgangspunkt ein Quadrat, in dessen Ecken völlig beliebige Zahlen platziert sind. Anschließend wird jede Seite mit den Differenzen der sie begrenzenden Zahlen beschriftet und damit ein neues Quadrat erzeugt. Mit diesem Quadrat wird der Prozess wiederholt und so weiter.

Aus einer Folge von vier natürlichen Zahlen mache man eine weitere derartige Folge, indem man den Betrag der Differenz zwischen jedem Glied und seinem Nachfolger bildet (als Nachfolger des letzten Gliedes gilt das erste). Nach einer gewissen Anzahl von Iterationen endet die Folge unweigerlich bei (0,0,0,0).

Das eigentliche besondere an diesem Modul sind die verschiedenen Ausgabeformate:

  • PNG
  • SVG
  • EEPIC
  • PostScript
Eine einfache API ermöglicht eine leichte Ergänzung der Ausgabeformate.

Voraussetzungen

  • PHP 4.0 (*nur* mit PHP 4.0.4pl1 getestet!)
  • Für die PNG-Ausgabe muss die GD-Bibliothek zu PHP eingebunden sein.

Benutzung

Das Verzeichnis dtd/, die Datei index.php sowie die Bilder bubble?.png und logo.png in ein entsprechendes Verzeichnis im HTML-Dokument-Baum des HTTP-Servers kopieren. Für das Verzeichnis muss Schreibrechte für den WebServer eingerichtet sein.

Eigene Erweiterung

Um ein eigenes Ausgabeformat zu ergänzen muss eine Unterklasse zu dtdDiffyDrawer geschrieben werden, die folgende Methoden implementiert:

txtStart()
Start der Zeichenanwendung
txtEnd()
Ende der Zeichenanwendung
txtLine($y1, $x1, $y2, $x2)
Zeichne eine Linie
txtText($y1, $x1, $text)
Zeichne einen Text
txtPolygon($points)
Zeichne ein geschlossenes Polygon

Diese Unterklasse muss der Namenskonvention dtdDiffyTypeDrawer genügen. Anschliessend muss in dtdDiffyHTMLApplication die Klassenvariable modes erweitert werden.

Lizenz

Dieses Programm ist freie Software. Sie können es heraus- und/oder weitergeben. Modifizierung des Programms ist nur dann erlaubt, wenn Sie sich das Einverständnis des Lizenz-Inhabers einholen.

Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es Ihnen von Nutzen sein wird, aber OHNE JEDE GEWÄHRLEISTUNG - sogar ohne die implizite Gewährleistung der MARKTREIFE oder der EIGNUNG FÜR EINEN BESTIMMTEN ZWECK.

Gewährleistung

Da das Programm ohne jegliche Kosten lizenziert wird, besteht keinerlei Gewährleistung für das Programm, soweit dies gesetzlich zulässig ist. Sofern nicht anderweitig schriftlich bestätigt, stellen die Copyright-Inhaber und/oder Dritte das Programm so zur Verfügung, "wie es ist", ohne irgendeine Gewährleistung, weder ausdrücklich noch implizit, einschließlich - aber nicht begrenzt auf - Marktreife oder Verwendbarkeit für einen bestimmten Zweck. Das volle Risiko bezüglich Qualität und Leistungsfähigkeit des Programms liegt bei Ihnen. Sollte sich das Programm als fehlerhaft herausstellen, liegen die Kosten für notwendigen Service, Reparatur oder Korrektur bei Ihnen.

In keinem Fall, außer wenn durch geltendes Recht gefordert oder schriftlich zugesichert, ist irgendein Copyright-Inhaber oder irgendein Dritter, der das Programm wie oben erlaubt modifiziert oder verbreitet hat, Ihnen gegenüber für irgendwelche Schäden haftbar, einschließlich jeglicher allgemeiner oder spezieller Schäden, Schäden durch Seiteneffekte (Nebenwirkungen) oder Folgeschäden, die aus der Benutzung des Programms oder der Unbenutzbarkeit des Programms folgen (einschließlich - aber nicht beschränkt auf - Datenverluste, fehlerhafte Verarbeitung von Daten, Verluste, die von Ihnen oder anderen getragen werden müssen, oder dem Unvermögen des Programms, mit irgendeinem anderen Programm zusammenzuarbeiten), selbst wenn ein Copyright-Inhaber oder Dritter über die Möglichkeit solcher Schäden unterrichtet worden war.

Autoren

Jürgen A. Lamers
© 2002 DokuTransData, Aachen
Erstellt am 27.Januar 2002.
Letzte Änderung: 26.Februar 2002, 08:49 Uhr
Jürgen A.Lamers