![]() |
Markierten Bereich vergrößern
Ich hab ein Mandelbrot-Programm geschrieben, das Funktioniert auch wunderbar, allerdings klappt die Vergrößerung nicht.
Ich will mit der Maus in der Paintbox einen Quadratischen Bereich auswählen und diesen dann Vergrößern, also die Mandelbrotiteration über die neu ausgewählte Punktemenge laufen lassen. Mit anderen Worten: die Eckpunktkoordinaten des Rechtecks sollen als neue amin,amax,bmin und bmax (siehe Quellcode) verwendet werden. Mein Problem ist, dass der vergrößerte Bereich total verzerrt ist, und nicht immer auch der ausgewählte Bereich ist. das ist der Code fürs Mandelbrot
Delphi-Quellcode:
Vielen Dnak schon mal im Vorraus
xsmax:=paintbox1.Width;
ysmax:=paintbox1.Height; amin :=strtofloat(edit1.text); //diese Koordinaten sollen dann durch die Rechteckskoordinaten bmin :=strtofloat(edit2.text); //ersetzt werden. amax :=strtofloat(edit3.text); //Mein Problem ist die Umrechnng bmax :=strtofloat(edit4.text); max :=strtoint(edit5.text); da := (amax-amin) / xsmax; db := (bmax-bmin) / ysmax; a := amin; for xs:=0 to xsmax do begin b := bmax; for ys:=0 to ysmax do begin n:=0; x:=a; y:=b; repeat xneu := x*x - y*y + a; yneu := 2*x*y + b; x := xneu; y := yneu; radius := sqrt(x*x + y*y); inc(n); until (n > max) or (radius > 2); if n < max then begin paintbox1.canvas.Pixels[xs,ys]:=TColor(n*10); end else begin paintbox1.canvas.Pixels[xs,ys]:=clwhite; end; b := b - db end; a := a + da end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz