Freihandlinien zu langsam? oder falsches Konzept?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

buja

Betreff: Freihandlinien zu langsam? oder falsches Konzept?

BeitragSa, Mai 24, 2008 21:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Seit zwei Tagen versuche ich, nachdem die Eimerfunktion klappt danke der tollen community,
versucht einen Stift zu programmieren, der Freihandlinien zeichnen kann, klappt eig ganz gut, nur wenn man die Maus schon mit mittlerer Geschwindigkeit bewegt, zeichnet es einzelne Pixel.

Der Code ist ungefähr so:
Code: [AUSKLAPPEN]

If [Werkzeug ist Stift] and [Maus gedrückt] then stift()

...


function stift()

setbuffer imagebuffer(malfläche)
lockbuffer imagebuffer(malfläche)
writepixelfast mit (mousex(),mousey(),farbe)
unlockbuffer imagebuffer(malfläche)
setbuffer backbuffer()

end function


Hat einer eine Idee wie man das besser machen könnte? ich hab mich über frihandlinien bei c# informiert da ich das grad lerne, aber etwas was man mit blitz umsetzen kann hab ich net gefunden.
...

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSa, Mai 24, 2008 21:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Möglichkeit 1: Speichere die letzte Position der Maus und zeichne per Line eine Linie ein.

Möglichkeit 2: Speichere die letzte Position der Maus und überprüfe die größere Schrittweite zwischen X und Y. Hast du eine Achse ermittelt, so lasse die Differenz in einer For / Next -Schleife laufen um jeweils die andere Achse per Float als Relativen Steigwert ansteigen zu lassen. Dann kannst du das ganze auch wieder mit WritePixelFast machen.

Tipp: Line arbeitet auch schneller, wenn man den Buffer zuvor sperrt. Allerdings lohnt sich das nicht, wenn nach dem sperren und entsperren nur wenige Linebefehle ausgeführt werden. Es wird dann sogar langsamer.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D
 

buja

BeitragSo, Mai 25, 2008 11:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich werde glaub ich Möglichkeit 1 benutzen, für Möglichkeit 2 hab ich so dass Gefühl dass mir Mathematik dafür gänzlich fehlt (8.klasse^^).


Zu Möglichkeit 1 eine frage: Ich soll also jedesmal wenn die Maus bewegt wird und taste gedrückt ist eine Linie zeichnen zur letzten Mausposition, oder? das müsste machbar sein für mich Very Happy
...

The_Nici

BeitragSo, Mai 25, 2008 11:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Genau, jedoch locke den Buffer, ansonsten ists zu lahm.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group