Wenn ich das richtig verstanden hab, versucht er eine Re-Rasterung durch Interpolation. Klingt aufwendig, ist aber gar nicht so kompliziert.
Grundlegend hat er ein altes Koordinatensystem O mit Punkten (x,y) in x,y € R. Diese müssen auf ein neues, skaliertes und verschobenes Koordinaten-System X mit Punkten (x,y) in x,y € R gemappt werden. x,y € R sind hierbei diskret gegeben durch:
x = x0 + px * dx
und
y = y0 + py * dy
mit dx und dy als Abstände im realen Raum zwischen zwei Zeilen / Spalten und /px,py € N als Pixelindex auf dem Bildschirm.
Gesucht ist nun ein Algorithmus, der die Wertmatrix P_O nach P_N transformiert:
P_N = A(P_O, x0_O, y0_O, x0_N, y0_N, dx_O, dy_O, dx_N, dy_N)
Dieser Algorithmus kann rekursiv geschrieben werden als:
P_N+1 = A(P_N, x0_N, y0_N, x0_N+1, y0_N+1, dx_N, dy_N, dx_N+1, dy_N+1)
mit P_0 = F(x0_0, y0_0, dx_0, dy_0)
und F als darstellenden Funktion zum Berechnen des originalen Fraktals.
HTH.
P.S.: Kleiner Scherz am Rande:
Die Algorithmusbeschreibung: |
Other symmetries have been implemented. They do not help much, but once it has been coded there is no reason to remove it. |
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.