Hat mich wirklich beeindruckt, die Demo, daher habe ich mich selbst mal an einer Implementierung der Idee versucht und das Ergebnis will ich euch natürlich nicht vorenthalten:
Das "staunen" bezieht sich einerseits darauf, wie wenig man dem Bild (für die richtige Sorte von Bilde zumindest) tatsächlich die Verkleinerung anmerkt, aber viel eher darauf, wie sehr ich den augenscheinlichsten Kritikpunkt der Wortzähl-Applikation übernommen habe: ein mittelgroßes Bild um einen Pixel verschmälern braucht auf recht modernen PCs etwa eine Minute. Entweder haben die bei ihrer Demo ganz schön geWizardOfOzt oder eine ganze Serverfarm alleine für das Programm benutzt, oder ihr Algorithmus ist deutlich besser als meiner. Dass ich mal wieder bei Java geblieben bin dürfte die Sache auch nicht verbessert haben.
Also dynamisch ist das auf keinen Fall, aber die Ergebnisse können sich imo trotzdem sehen lassen.
Probiert's halt mal aus, und wer will, kann sich ja auch mal den Algorithmus zum Berechnen der unwichtigsten Linie (computeLeastImportantXYZalLine()) ansehen und zu optimieren versuchen, der frisst mit Abstand am meisten Rechenzeit. (Und darin wohl die Tatsache, dass andauernd Line-Objekte geklont werden müssen.) Ich bin allerdings echt auf nichts besseres gekommen, selbst der jetzige stellt schon die dritte Version dar, hinter der schon einiges an Überlegung steckt.
Die Option zur Vergrößerung des Bildes habe ich btw weggelassen, da sie a) das Ganze verkompliziert hätte und mir b) auch lang nicht so wirkungsvoll vorkommt wie die Verkleinerung.
Oh, und die GUI-Klasse zur Demonstration ist nicht kommentiert, da hat mich schon wieder langsam die Lust verlassen.
PS: Falls Interesse besteht könnte ich wahrscheinlich auch ein kurzes Tutorial über den allgemeinen Algorithmus schreiben. Das Blöde wäre halt, dass damit potenziell alle Lesenden zu hardwarefresserprogrammierenden Monstern erzogen würden. x__X