Registriert seit: 22. Apr 2004
Ort: Hagen
322 Beiträge
Turbo Delphi für Win32
|
Re: Imaginären/Realen Anteil berechnen
4. Mai 2007, 12:14
So, ich hab mit dem Threadersteller noch nen paar PMs getauscht und jetzt sollten alle Fehler beseitigt sein.
Delphi-Quellcode:
{##############################################################################}
{Diese Funktion berechnet aus der X-BildKoordinate den realen Anteil im Koordinatensystem}
function getRe(const x:integer;ReMin,ReMax,Breite:real):real;
Begin
getRe := (x / (Breite /(abs(ReMax - ReMin))) + ReMin);
end;
{##############################################################################}
{Diese Funktion berechnet aus der Y-BildKoordinate den imaginären Anteil im Koordinatensystem}
function getIm(const y:integer;ImMin,ImMax,Hoehe:real):real;
Begin
GetIm := -(y / (Hoehe /(abs(ImMax - ImMin))) - ImMax);
end;
{##############################################################################}
{Diese Funktion berechnet rekursiv die Farbe eines ihr übergebenen Bildpunktes --> Apfelmännchen}
function mandel(const re0,im0:real;depth:integer;re,im:real):TColor;
var
x, y: real;
begin
if (re0*re0 + im0*im0 <= 100) and (depth > 0) then
begin
x := re0*re0 - im0*im0 + re;
y := 2 * re0 * im0 + im;
mandel := mandel(x, y, depth-1, re, im)
end
else
mandel := TColor(500*depth);
end;
{##############################################################################}
{Diese Funktion berechnet rekursiv die Farbe eines ihr übergebenen Bildpunktes --> Juliamenge}
function Julia(const re0, im0:real; depth: integer; jre, jim: real):TColor;
var
x, y: real;
begin
if (re0*re0 + im0*im0 <= 100) and (depth > 0) then
begin
x := re0*re0 - im0*im0 + jre;
y := 2 * re0 * im0 + jim;
julia := Julia(x, y, depth-1, jre, jim);
end
else
julia := TColor(depth * 1500);
end;
Im Anhang ein kleines Beispielprogramm, was den Ablauf verdeutlicht
Jan
|
|
Zitat
|