Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Durchgehend zeichnen mit canvas (https://www.delphipraxis.net/24642-durchgehend-zeichnen-mit-canvas.html)

Dragon27 23. Jun 2004 20:14


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:

zeichenbrett.Canvas.Pixels[x,y]:=JvGammaPanel1.ForegroundColor;
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.

Kann mir da bitte jemand helfen?

Danke

supermuckl 23. Jun 2004 20:17

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 ?

nailor 23. Jun 2004 20:20

Re: Durchgehend zeichnen mit canvas
 
ich glaube, er meint, dass es nichts in der richtung antialiasing gibt.

Mirilin 23. Jun 2004 20:32

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

Dragon27 23. Jun 2004 20:35

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:

if zeichnet=true
then begin
 zeichenbrett.Canvas.Font.Color:=JvGammaPanel1.ForegroundColor;
if toolbutton1.Down
then begin
zeichenbrett.Canvas.Pixels[x,y]:=JvGammaPanel1.ForegroundColor;
end;
Wie würdet Ihr denn so ne zeichenroutine machen?

Zeichnet stellt sich bei mousedown auf true....


Danke

Andy

supermuckl 23. Jun 2004 20:38

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

Skiron 23. Jun 2004 20:39

Re: Durchgehend zeichnen mit canvas
 
da dürfts doch einen Pen-Style geben (wenn mich nicht alles täuscht)

Nicodius 23. Jun 2004 20:39

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 ;)

supermuckl 23. Jun 2004 20:41

Re: Durchgehend zeichnen mit canvas
 
jo genau so :)

Dragon27 23. Jun 2004 20:45

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 07:14 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz