Entwickler-Ecke
Multimedia / Grafik - Freihandzeichnung mit pen auf Image
Linuxguru - Mi 10.07.02 15:45
Titel: Freihandzeichnung mit pen auf Image
Hallo!!!
Ich habe da ein Problem. Ich möchte auf einem Image eine Freihandzeichnung mit canvas.pen machen. Das funktioniert auch. Nur wenn ich pen.width := 12 setze, dann macht er bei schnelleren mausbewegungen immer da wo die linie neu gezeichnet wird einen weissen punkt hin. Praktisch immer an den enden der linie. Wenn ich die Maus ganz langsam bewege, sieht die linie dann aus wie gebrushed. kann mir jemand sagen, woran das liegt.ich geh mal von den xor operator aus, das der das nicht ganz korrekt darstellt.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if Drawing then begin Start:= Move; Move := Point(x,y); DrawShape(Start,Move,pmNotXOR); end; |
Danke für Lösungsvorschläge
Code-Tag hinzugefügt. Marc
Andreas Pfau - Mi 31.12.03 18:20
Hallo,
*recht hast*, der XOR-Operator sorgt prakitsch dafür, dass (bei S/W) dein Hintergrund invertiert wird! Biespiel:
- Alles ist weiß
- du machst einen Strich, der ist komplementär zu weiß, also schwarz
- deu machst ncoh einen Strich, ein Pixel davon überlappt sich mit dem alten Strich: Der Strich is schwarz, aber der eine Pixel invertiert das schwaze vom alten Strich: Ein weißer Pixel entsteht!
Nimm am besten statt XOR einen normalen Pinsel, und Schwarz als Pinselfarbe. DrawShape() kenne ich nicht... Haste das selber gecodet?
G-McKree - Fr 02.01.04 20:34
is doch viel eiinfacher, wen man immer ein cavas.lineto() zum cursor macht
noch mit check, ob die taste gedrückt is und das wars
einfache gehts nich
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!