WritePixelFast und Plot
Übersicht

Mashed CrashedBetreff: WritePixelFast und Plot |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Moinmoin,
Ich wollte nur mal aus reinem Spaß ein Mal Programm machen, dabei bin ich auf folgendes gestoßen. Plot arbeitet schneller als Writepixelfast Das sieht man im folgenden Beispiel: Code: [AUSKLAPPEN] Graphics 640,480
SetBuffer BackBuffer() SeedRnd MilliSecs() font = LoadFont("verdana",64) Dim grafik(640,480,3) SetFont font Repeat Cls Color 155,155,155 Rect 0,0,5,480 Rect 0,0,640,5 Rect 635,0,640,480 Rect 0,475,640,480 start = MilliSecs() For I = 1 To 640 For P = 1 To 480 ;WRITE-PIXEL-FAST rgb = Rnd(0,255)*$10000+Rnd(0,255)*$100+Rnd(0,255) LockBuffer BackBuffer() WritePixelFast I,P,rgb UnlockBuffer BackBuffer() ;PLOT ; Color Rnd(0,255),Rnd(0,255),Rnd(0,255) ; Plot I,P Next Next ende = MilliSecs() Color 0,0,0 Text 10,10," ZEIT:" + (ende-start) Flip Until KeyHit(1) Bei Writepixelfast zeigt der mir immer Zahlen zwischen 1400 und 1480 an, bei Plot hingegen zwischen 910 und 940. Das ist eine halbe Sekunde langsamer bzw schneller. Nun die Frage, mach ich irgendwo was falsch, oder gibt es eine noch schnellere Möglichkeit Pixel zuschreiben. Mein Malprogramm soll schließlich nicht so doll ruckeln ^^ |
||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich kann diese Zeitmessung nicht bestätigen.
Bei mir siehts so aus: WritePixelFast: ~2600 Plot: ~4400 |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Abgesehen davon, kommen deine verfälschten Ergebnisse durch das ständige LockBuffer, UnlockBuffer
Meine Ergebnisse mit meinem Code: Plot: 1791 WritePixelFast: 58 hier mal mein (dein umgeformter) code: Code: [AUSKLAPPEN] Graphics 640,480
SetBuffer BackBuffer() SeedRnd MilliSecs() mode=1 font = LoadFont("verdana",64) Dim grafik(640,480,3) SetFont font Repeat Cls Color 155,155,155 Rect 0,0,5,480 Rect 0,0,640,5 Rect 635,0,640,480 Rect 0,475,640,480 start = MilliSecs() If mode=1 Then LockBuffer BackBuffer() For I = 1 To 640 For P = 1 To 480 ;WRITE-PIXEL-FAST If mode=1 rgb = Rnd(0,255)*$10000+Rnd(0,255)*$100+Rnd(0,255) WritePixelFast I,P,rgb Else Color Rnd(0,255),Rnd(0,255),Rnd(0,255) Plot I,P EndIf Next Next If mode=1 Then UnlockBuffer BackBuffer() ende = MilliSecs() Color 0,0,0 Text 10,10," ZEIT:" + (ende-start) Flip Until KeyHit(1) |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du Lockbuffer raus aus der Schleife setzt, dann hast du das gleiche etwa 50mal schneller. ![]() Code: [AUSKLAPPEN] Graphics 640,480,0,2
SetBuffer BackBuffer() While Not KeyHit(1) Color 155,155,155 Rect 0,0,5,480 Rect 0,0,640,5 Rect 635,0,640,480 Rect 0,475,640,480 start = MilliSecs() LockBuffer BackBuffer() For x = 0 To 639 For y = 0 To 479 ;WRITE-PIXEL-FAST rgb = Rnd(0,255)*$10000+Rnd(0,255)*$100+Rnd(0,255) WritePixelFast x,y,rgb ;Plot ; Color Rnd(0,255),Rnd(0,255),Rnd(0,255) ; Plot x,y Next Next UnlockBuffer BackBuffer() ende = MilliSecs() Color 0,0,0:Rect 0,0,110,30,1 Color 255,0,0:Text 10,10," ZEIT:" + (ende-start) Flip Cls Wend End |
||
Mashed Crashed |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Achsooooooo,
ok ^^ darauf hätte ich auch komm könn, aber trozdem danke an alle ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group