Ein schnelles assembler optimieres Apfelmännchen....
C Sourcen habe ich von:
You are about to leave Forum64 to get redirected to the following address:
Please note, that the target website is not operated by us. We are not responsible for it's content nor does our privacy policy apply there.
Ein schnelles assembler optimieres Apfelmännchen....
C Sourcen habe ich von:
An Coma Light 11 kommt es nicht ganz ran: (ab 7:24)
an coma light kommt eh kein hobby programierer wie wir ran.... das sind meister
Ein schnelles assembler optimieres Apfelmännchen....
...vor allem mit einer SuperCPU
Schön wäre es aber es rechnet bis zum Ende des Bildschirms und würde dann nicht beenden, damit man den Screen auch anschauen kann, ohne das der BASIC-Editor Farben ändert...
Falls jemand mit sowas "herumspielen" will... es gab auf der Input64 2/87 ein Programm Namens "Julia"... ich meine da steckt eine andere Formal dahinter, daher sind die Ergebnisse nicht vergleichbar... schön ist das dennoch. Julia kann im übrigen auch "räumliche Darstellung"...
Hier mal ein Beispiel:
Werte für den Ausschnitt:
L=0.8, R=2.1, U=-0.4, O=0.4, Tiefe=25, mittel, ohne Schnellmodus.
danke brotkasten ! sollte mir eine Brille besorgen...
ok das Ende des Programs ändern....
Das V2 bleibt in einer Endlosschleife stehen... bis man Reset macht....
Danke für die tollen Beispiele muss ich mir raussuchen..... Sehr sehr hübsch !! muss ich mir raussuchen...
An Coma Light 11 kommt es nicht ganz ran: (ab 7:24)
[External Media: https://youtu.be/TaxGe3qth0U?t=444]
bin geflasht, wenn ich nicht sitzen würde müsste ich am boden liegen...
V3 mit Colorcycler - EPILEPSIE WARNUNG
An Coma Light 11 kommt es nicht ganz ran
Das lässt sich aber nicht vergleichen, weil in der Demo eine viel schlechtere Zahlenauflösung benutzt wird. Das sieht man sofort an den groben Rändern. Und besonders tief kommt man damit auch nicht. Wer das Apfelmännchen bei guter Strukturauflösung richtig schnell haben will, der muss es schaffen, möglichst effektiv den rechenintensiven inneren Bereich zu überspringen, ohne dabei die Ränder in Mitleidenschaft zu ziehen.
Wer das Apfelmännchen bei guter Strukturauflösung richtig schnell haben will, der muss es schaffen, möglichst effektiv den rechenintensiven inneren Bereich zu überspringen, ohne dabei die Ränder in Mitleidenschaft zu ziehen.
Das geht mit einem Floodfill von allen(!) Randpunkten des Bildschirms aus, mit den Iterationen=Maximum (-> schwarz, "Mandelbrot-Punkt") als Stop-Bedingung. Man nutzt hier aus, daß die Mandelbrot-Menge einfach zusammenhängend ist - insbesondere heißt das, daß sie keine Löcher hat.
Ich hatte das seinerzeit bereits kombiniert mit einer Anzeigemethode, welche die Filamente hervorhebt. Hier zwei Beispiele vom VC-20:
Ich als bekennender Apfelmännchen-Fan sage dazu: Einfach nur TOP
Ein schnelles assembler optimieres Apfelmännchen....
Der Screenshot sieht so aus als würde da die Achsensymmetrie nicht ausgenutzt werden?
An Coma Light 11 kommt es nicht ganz ran
Das lässt sich aber nicht vergleichen, weil in der Demo eine viel schlechtere Zahlenauflösung benutzt wird. Das sieht man sofort an den groben Rändern. Und besonders tief kommt man damit auch nicht. Wer das Apfelmännchen bei guter Strukturauflösung richtig schnell haben will, der muss es schaffen, möglichst effektiv den rechenintensiven inneren Bereich zu überspringen, ohne dabei die Ränder in Mitleidenschaft zu ziehen.
erzähl mir mehr darüber bitte
Display MoreWer das Apfelmännchen bei guter Strukturauflösung richtig schnell haben will, der muss es schaffen, möglichst effektiv den rechenintensiven inneren Bereich zu überspringen, ohne dabei die Ränder in Mitleidenschaft zu ziehen.
Das geht mit einem Floodfill von allen(!) Randpunkten des Bildschirms aus, mit den Iterationen=Maximum (-> schwarz, "Mandelbrot-Punkt") als Stop-Bedingung. Man nutzt hier aus, daß die Mandelbrot-Menge einfach zusammenhängend ist - insbesondere heißt das, daß sie keine Löcher hat.
Ich hatte das seinerzeit bereits kombiniert mit einer Anzeigemethode, welche die Filamente hervorhebt. Hier zwei Beispiele vom VC-20:
hast du code ?
unter floodfill verstehe ich einen pixelfiller der zeilenweise füllt bis er ein pixel erkennt und stoppt. habe ich das richtig verstanden ?
also meinst du ich soll von rechts nach links(319->pix) eine zeile füllen und auch von links nach rechts (0->pixel) bis was kommt ?
der c code von daybyter :
unter floodfill verstehe ich einen pixelfiller der zeilenweise füllt bis er ein pixel erkennt und stoppt. habe ich das richtig verstanden ?
Die simpelste Version ist eine Rekursion, die 1 Pixel füllt, und wenn das gefüllt werden durfte, sich dann selbst mit Pixel links/rechts/oben/unten aufruft. So frisst das aber ungeheuer viel Stapelspeicher. Besser wird es, Linien zu füllen. Und wenn man eine Linie gefüllt hat, dann sucht man noch drunter und drüber, wo sich benachbarte Linien zum Füllen finden.
Wenn ich mich richtig erinnere, dann hat Fractint viele verschiedene Algorithmen für Apfelmännchen.
Das "Core-6502-Duo"-Apfelmännchen aus der 64'er (1991), das die Floppy-CPU mit einspannte, dürfte wohl auch den meisten bekannt sein.
erzähl mir mehr darüber bitte
Der Mike hatte schon die beste Lösung. Man geht nicht einfach Zeile für Zeile und dadurch immer wieder durch den zähen Morast, sondern tastet drumherum alles ab. Der Rand des "Morasts" fungiert dabei wie der Rand einer bereits existierenden Fläche. Man bemerkt ihn ja durch die überlaufende Iteration. Wenn man den Hintergrund gleich in der Farbe macht, in der das Innere erscheinen soll, meistens Schwarz, dann braucht man danach auch nichts weiter zu machen.
Die Qualität wird ansonsten von der Rechengenauigkeit und der Iterationstiefe bestimmt. Je kleiner, desto schneller, aber das Ergebnis wird damit schlechter. Es braucht aber auch nicht mehr sein, als die Pixelauflösung hergibt.
In einer PM-Zeitschrift für Numerologie und Mathematik habe ich mal ein super schönes 3D-Apfelmännchen gesehen, das ich gern mal mit dem C64 "nachbauen" würde. Die Zeitschrift hatte zweimal verloren und zweimal wieder gebraucht gekauft. Hm, ich frage mich gerade, wo die jetzt ist.
Kein Hinweis zur Performance, aber vielleicht zur Darstellung.
Auf dem kleinen Atari mit seinen 4 Farben pro Zeile, hatte ich vor kurzem einen interessantes Programm gesehen. (ist auf Flop 65)
Die Darstellung profitiert meiner Meinung nach sehr von dem Ansatz, der sehr einfach ist. Die Farbenpalette wird Zeilenweise geändert (gewechselt) und die vertikale Auflösung halbiert, die Palettenzeilen sind fix, also flimmert auch nichts.
Boah ! KRASS bin geflashed vom Atari !
"
Die Darstellung profitiert meiner Meinung nach sehr von dem Ansatz, der sehr einfach ist. Die Farbenpalette wird Zeilenweise geändert (gewechselt)"
FLI mode also wenn ich es richtig verstehe ?
Display MoreBoah ! KRASS bin geflashed vom Atari !
"
Die Darstellung profitiert meiner Meinung nach sehr von dem Ansatz, der sehr einfach ist. Die Farbenpalette wird Zeilenweise geändert (gewechselt)"
FLI mode also wenn ich es richtig verstehe ?
Ja genau, nur halt in der denkbar einfachsten Form, mit zwei in Zeile und Farben fixen sich abwechselnden Farbpaletten. Hat den Vorteil, dass der Algorithmus einfach mit einer höheren Anzahl an Farben und halber Auflösung laufen kann. Das wird dann quasi auf einen der kalkulatorischen 160x100 Pixel umgesetzt. Spart Zeit und sieht auch noch besser aus. Der Ansatz ist so simple, aber eben gut gemacht mit der Wahl der Farben. Man sieht ja bei den langen Verläufen, dass die vorhandenen Mischfarben wie im Pingpong doppelt verwendet werden. Kann man nur staunen. 3 Farben sinds. Hätte man auch vor 40 Jahren drauf kommen können.
Das schöne sowas auf dem C64 umzusetzen wäre es ja, dass man damit ein paar Mischfarben vielleicht generiert, die im ersten Augenblick vielleicht nicht so nach C64 aussehen. Eigentlich ideal für den C64, muss man mal die Farben kombinieren, was da gut aussehen kann.
Hmmh....das könnte doch aber auch auf dem c64 gehen, oder? Wenn man die Farbregister passend ändert?
Na aber absolut. Das ist wie gemacht für den C64. Wurde bisher wohl nicht gemacht, weil sich wohl niemand so richtig vorstellen konnte, dass das Ergebnis gut aussieht.
Das ist ja der Schlüssel, muss man nur mal sehen, das man da am C64 gut funktionierende Kombinationen findet.