Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

11.01.2010, 21:12

frage zu drawlines c#

Hallo. ich will folgendes machen , was aber nicht wirklich hinhaut:
ich habe ne Form und da drin sowas wie ein panel oder picturebox oder sonst was... dann will ich wenn ich in diesem panel mit der maus herumfahre und die linke taste gedrückt hab eine linie entlang meiner spur ziehen.

habs so gemacht, dass ich das mousedown event hernimm und da auf die linke taste check. und dann immer schau, ob sich die maus bewegt hat und wenn ja die aktuelle koordinate in ein point array zu geben.

und dann ruf ich immer invalidate vom panel auf und zeichne in paint event halt mit drawlines mein point array.

funktioniert schon mal nicht so schlecht, aber so gehts nur wenn ich wo hinklicke mit der maus, dass dorthin eine linie kommt, willst aber so wie ka in jedem bildbearbeitungsproggy, das es live gezeichnet wird, was ich mache...

kann mir jemand einen tipp geben wie sowas zu realisieren is?

sprache c#

lg
aly

edit: habs jetzt aufs mousemove event umgestellt und das geht eigentlich schon nicht so schlecht, aber es flimmert jetzt extrem...

lg

Mordrak

1x Contest-Sieger

Beiträge: 121

Wohnort: München

Beruf: Junior IT Consultant

  • Private Nachricht senden

2

11.01.2010, 21:34

Ahoi,

Flimmern kriegt man meist weg indem man nicht direkt ins Fenster malt, sondern z.B. in eine eigene Bitmap hinein. Und in Deinem Fall dort dann natuerlich nicht jedesmal das komplette Pointarray, sondern nur was neu hinzu gekommen ist. Wenn dann der Paint kommt, muss man nur noch die vorbereitete Bitmap uebertragen.

Als schnellen Versuch kannst Du auch mal DoubleBuffered = true; in Deiner Form machen, das loest quasi das Gleiche aus, ohne dass Du sonst was am Code aendern musst. Was dabei automatisch natuerlich nicht abgedeckt wird sind die immer umfangreicher werdenden Zeichenoperationen...

Gruesse,
Mordrak
What's yellow and equivalent to the axiom of choice? The Lemmon of Zorn!