![]() |
Durchgehend zeichnen mit canvas
Hallo,
bin grad dabei ein Zeichenprogramm zur Übung zu schreiben. Habe da aber ein Problem mit den ganz normalen Zeichenen.
Delphi-Quellcode:
Wenn ich diesen Code hernehme dann zeichnet der nicht durchgehende Linien sondern es wird pixelig (Steht ja scho im Quelltext :lol: ) und bei "Line To" geht das auch net.zeichenbrett.Canvas.Pixels[x,y]:=JvGammaPanel1.ForegroundColor; Kann mir da bitte jemand helfen? Danke |
Re: Durchgehend zeichnen mit canvas
und wie sieht der code aus für lineto ?
die frage versteh ich net ganz.. wo wird es da pixelig ? |
Re: Durchgehend zeichnen mit canvas
ich glaube, er meint, dass es nichts in der richtung antialiasing gibt.
|
Re: Durchgehend zeichnen mit canvas
:hi:
Im MouseDown/Up eine Boolean Variable entsprechend setzen. Dann im MouseMove, falls die Boolean Variable entsprechend gesetzt ist, mit LineTo die Linie vom alten Punkt zum neuen X,Y zeichen und das X,Y dann als alten Punkt hinterlegen. mfg Tobias |
Re: Durchgehend zeichnen mit canvas
Hallo,
Also schaut der Text jetzt aus. aber der macht bei schnellem Zeichnen hald einfach nicht eine solche Linie __________________________________________________ __________ sondern: .................................................. .......... Also sie is einfach gepunktet wenn man zu schnell zeichntet. Hier noch der code:
Delphi-Quellcode:
Wie würdet Ihr denn so ne zeichenroutine machen?if zeichnet=true then begin zeichenbrett.Canvas.Font.Color:=JvGammaPanel1.ForegroundColor; if toolbutton1.Down then begin zeichenbrett.Canvas.Pixels[x,y]:=JvGammaPanel1.ForegroundColor; end; Zeichnet stellt sich bei mousedown auf true.... Danke Andy |
Re: Durchgehend zeichnen mit canvas
das problem was du da hast ist wohl:
die maus, wenn du sie schnell bewegst, springt dann von pixel zu pixel und überfliegt viele.. je schneller desto mehr das ist wohl der effekt den du da hast.. du kannst aber durch eine verbundlinie ( spline ) trotzdem vvon punkt zu punkt eine linie ziehen.. so wie es mirilin vorgemacht hat etwa |
Re: Durchgehend zeichnen mit canvas
da dürfts doch einen Pen-Style geben (wenn mich nicht alles täuscht)
|
Re: Durchgehend zeichnen mit canvas
Delphi-Quellcode:
procedure TForm1.StiftDraw(x, y: Integer);
begin with Form1 do begin if not FC then begin Paintbox1.Canvas.Pen.Color := Farbe; PaintBox1.Canvas.MoveTo(MOldPo.X, MOldPo.Y); PaintBox1.Canvas.LineTo(Xold, Yold); end else FC := False; Paintbox1.Canvas.Pen.Color := Farbe; PaintBox1.Canvas.MoveTo(XOld, YOld); PaintBox1.Canvas.LineTo(X, Y); XOld:=X; YOld:=Y; end; end; bitte schön ;) |
Re: Durchgehend zeichnen mit canvas
jo genau so :)
|
Re: Durchgehend zeichnen mit canvas
hi,
das von Mirilin versteh ich irgendwie nicht so. Hab ich ja auch so gemacht....... Aber irgendwie funzt das nicht da immer die linien nicht genau werden. gibts da sonst noch was? Danke |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz