![]() |
Fraktale-Zoomfunktion
Kann mir einer von euch vielleicht helfen und mir sagen warum meine Zoomfunktion nicht wirklich gut funktioniert??
Wenn man einen imaginären Kasten aufzieht und somit in das Bild hineinzoomt wird das Bild immer weiter nach rechts verschoben, bis das komplette Bild schwarz ist!! Prozedur zum Speichern der Position des Imaginären Zoomkastens(Startpunkte)
Code:
Prozedur zum Speichern der Position des Imaginären Zoomkastens(Endpunkte)
procedure TFrmMain.PaintBoxMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin ZoomStartX:= X; ZoomStartY:= Y; end; Neuen Werte werden in die EditFelder eingefügt und Bild neu Berechnet!
Code:
procedure TFrmMain.PaintBoxMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); var remin, remax, immin, immax,ZoomEndX,ZoomEndY: real; begin remin := StrToFloat(EdtRealMin.Text); remax := StrToFloat(EdtRealMax.Text); immin := StrToFloat(EdtImgMin.Text); immax := StrToFloat(EdtImgMax.Text); EdtRealMin.Text := FloatToStr(getRe(Trunc(ZoomstartX), remin, remax, Paintbox.Width)); EdtImgMin.Text := FloatToStr(getIm(Trunc(ZoomstartY), immin, immax, Paintbox.Height)); ZoomEndX := X; ZoomEndY := Y; EdtRealMax.Text := FloatToStr(getRe(Trunc(ZoomendX), remin, remax, Paintbox.Width)); EdtImgMax.Text := FloatToStr(getIm(Trunc(ZoomendY), immin, immax, Paintbox.Height)); Application.ProcessMessages; BtnAufbauen.Click; end; Funktionen zur Berechnung der Realen Anteile im KoordinatenSystem
Code:
Funktion zur Berechnung der Imaginären Anteile im Koordinatensystem
function getRe(const x:integer;ReMin,ReMax,Breite:real):real;
Begin getRe := x / (Breite /(abs(ReMin) + abs(ReMax))) + ReMin; end;
Code:
function getIm(const y:integer;ImMin,ImMax,Hoehe:real):real;
Begin GetIm := y / (Hoehe /(abs(ImMin) + abs(ImMax))) + ImMin; end; |
Re: Fraktale-Zoomfunktion
vermutlich berechnest du GetRe und GetIm falsch:
getRe := x / (Breite /(abs(ReMin) + abs(ReMax))) + ReMin; müsste eher sowas sein: getRe := ReMin + x * (ReMax - ReMin) / Breite; Im entsprechend |
Re: Fraktale-Zoomfunktion
THX,,das war das Problem!!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:52 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-2025 by Thomas Breitkreuz