Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#10

Re: Fractal-Visualisierung in Delphi

  Alt 13. Jan 2008, 00:29
Was machst du hier eigentlich für ein Aufstand? Eine Frage, vieles wird angenommen und alles ist schon wieder zu langsam. Also mal der Reihe nach...

1. OffScreenBitmap ist ein Bitmap welches du anlegst und zum malen nutzt. Dadurch erzeugst du das Bild einmalig nach einer Änderung und kannst dieses dann bei jedem Malen einfach auf die Form malen.
2. Nutzung von TImage ist von Nachteil. Selbst wenn nur ein kleier Teil neugezeichnet werden muss, wird das komplette TImage gemalt. Damit wird das Flackern gefördert und es verlangsamt den Zeichenprozeß.
3. Fülle das TBitmap über die ScanLine Property und du hast eine grundlegend hohe Geschwindigkeit.
4. Male das OffScreenBitmap direkt auf die Form. Nutze dabei die Eigenschaft ClipRect des TCanvas und male nur den markierten Bereich (also das Rechteck welches die Überschneidung zwischen ClipRect und deinem Bitmap darstellt). Dies kannst du einfach lösen mit [mdsn]IntersectRect()[/msdn] und MSDN-Library durchsuchenBitBlt()
5. Zoom - wie stellst du dir das vor? Wenn du ein Bild berechnest, dann wirst du die schnellste und grafisch beste Darstellung bekommen, wenn du das Bild passend zu der dargestellten Bildauflösung berechnest. Wenn du nun hinein zoomen willst, dann geschieht das mathematisch mit Änderung deiner Formelparameter. Dadurch werden andere Pixeldaten errechnet und somit entsteht ein neues Bild und dieses zeigt dann einen bidlichen Zoom dar. Ein berechneter Pixel mit einem Farbwert kann nur als Rechteck/Quadrat gezoomt werden und somit wird aus einem roten Pixel gezoomt ein rotes Rechteck - dein zoom ist ein rein mathematisches Problem. verständlich?
6. Ein Screenshot unkomprimiert sind 10 MB an Daten - klar. Wenn du es komprimierst (z.B. PiNG), dann wird es weniger - also nicht immer TBitmap nutzen um was abzuspeichern.
7. Du kannst mit einem Thread im Hintergrund die Daten feiner rechnen. Das Problem beim vorberechnen von Bilddaten für den Zoom: wohin zoomt der Nutzer? man kann ja schliesslich oben links zoomen oder unten rechts ...

Schon allein wegen deinen Fragen und ein paar Dingen bezüglich Zoom, etc. eine Frage von mir: Kennst du fractint? Schonmal mit gearbeitet bzw. Zoom, Formelparameter etc?
  Mit Zitat antworten Zitat