RotateImage zu langsam

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

joshmami

Betreff: RotateImage zu langsam

BeitragSa, März 05, 2011 21:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Community!
Ich habe folgendes Problem:
Weil RotateImage ja so langsam ist, wollte ich die Bilder wie in der
BB-Hilfe geraten wird vorher berechnen zu lassen.
Also habe ich folgenden Code
BlitzBasic: [AUSKLAPPEN]

;...
TFormFilter 0
Dim SkaterDrehung(90)
For Zahl = 1 To 90
Plot 200,200 ; Wird noch eingefärbt
SkaterDrehung(Zahl) = LoadImage("Skater.bmp")
Plot 300,200 ;Auch noch eingefärbt
RotateImage SkaterDrehung(Zahl),Zahl*4
Plot 400,200 ;Nicht mehr eingefärbt
Next
;...
Repeat
;...
Until KeyHit(1)

Jedoch wird nur ein schwarzes Fenster angezeigt...
Ich weis zwar, dass rotateImage langsam ist, aber nach 2 Minuten tut sich immer noch nichts!
Bin dankbar für jede Hilfe.
Mfg Joshmami

BladeRunner

Moderator

BeitragSa, März 05, 2011 21:13
Antworten mit Zitat
Benutzer-Profile anzeigen
lass doch mal einen text pro schleifendurchgang per debuglog ausgeben.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

Sterbendes Lüftlein

BeitragSa, März 05, 2011 21:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Text entfernt
 

Jumper

BeitragSa, März 05, 2011 22:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Normal sollte die Aktion nicht viel länger als 2 oder 3 Sekunden dauern, wenn das geladene Bild keine zu großen Ausmaße hat.

Zunächst sollte der Befehl LoadImage aus der Schleife raus, denn das kostet unnötig viel Rechnerzeit.
Dann setze ein MidHandle vor dem Rotieren, sonst kommen da die merkwürdigsten Ergebnisse bei raus!

Dieser Code dauert bei mir ca. 3 Sekunden bei einer Bildgröße von 64x128 Pixel.

BlitzBasic: [AUSKLAPPEN]

Dim SkaterDrehung(89)
SkaterDrehung(0)=LoadImage("Skater.bmp")
MidHandle SkaterDrehung(0)
For Zahl = 1 To 89
SkaterDrehung(Zahl) = CopyImage(SkaterDrehung(0))
RotateImage SkaterDrehung(Zahl),Zahl*4
Next

Midimaster

BeitragSo, März 06, 2011 10:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bezweifle auch, dass man die Bilder in 1°-Schritten benötigen wird. Oft genügt es nach 5° Abweichung ein neues Bild zu zeichnen.
 

Jumper

BeitragSo, März 06, 2011 11:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie kommst Du auf 1° Schritte?
joshmami hat 4° Schritte gewählt. (Zahl*4)

joshmami

BeitragSo, März 06, 2011 12:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für die Hilfe! Smile
Mit dem CopyImage dauert es dann nur noch 30 Sekunden bei einer Bildgröße von 380 * 330 Pixeln.Ich lasse dann einfach solange ausgeben:
"Bitte warten.Das Programm wird geladen..."
Das passt schon so.
@Midimaster:
Das sind doch 4° Schritte!
Mfg Joshmami

Midimaster

BeitragSo, März 06, 2011 13:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Embarassed sorry, da hab ich wohl nicht genau hingeschaut.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group