Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Markierten Bereich vergrößern (https://www.delphipraxis.net/16106-markierten-bereich-vergroessern.html)

GuenterM 10. Feb 2004 14:10


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:
    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;
Vielen Dnak schon mal im Vorraus


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz