Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Breite Linie schießt über Ziel hinaus (https://www.delphipraxis.net/207646-breite-linie-schiesst-ueber-ziel-hinaus.html)

e-gon 18. Apr 2021 16:35

Breite Linie schießt über Ziel hinaus
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

wahrscheinlich wurde dieses Problem schon oft thematisiert, aber mit meinen Stichworten finde ich einfach keinen Beitrag hier, sorry! :?

Beim zeichnen einer Linie mit der Breite (Width) von 1 endet die Linie auch wirklich an der angegebenen Position. Ist Width jedoch größer, malt Delphi an den Endpunkten der Linie immer noch einen Kreis mit der halben Linienbreite (siehe grüner Kreis auf dem Bild im Anhang). Mein Grafikprogramm (Corel Photo Paint) tut sowas nicht.

Wie kann ich Delphi das abgewöhnen? In
Delphi-Quellcode:
Pen.Mode
finde ich jedenfalls keine entsprechende Einstellung... :cry:

Gruß
e-gon

KodeZwerg 18. Apr 2021 16:47

AW: Breite Linie schießt über Ziel hinaus
 
und wie schaut der code zum malen der linie aus?

e-gon 18. Apr 2021 16:50

AW: Breite Linie schießt über Ziel hinaus
 
Hallo KodeZwerg,

danke für die schnelle Antwort.

Hier der Code:
Delphi-Quellcode:
BMP.Canvas.Pen.Color:= clBlack;
BMP.Canvas.Pen.Width:= 1;
BMP.Canvas.MoveTo(400, 400);
BMP.Canvas.LineTo(800, 300);

BMP.Canvas.Pen.Width:= 26;
BMP.Canvas.MoveTo(600, 350);
BMP.Canvas.LineTo(650, 550);
Gruß
e-gon

brechi 18. Apr 2021 17:06

AW: Breite Linie schießt über Ziel hinaus
 
Ich glaube er meint die Linien enden, das Stichwort ist dann "Linecap". https://www.delphipraxis.net/22035-c...te-linien.html ist eine Pen-Eigenschaft. Ggf. bietet Delphi die mittlerweile direkt an, sonst muss du über die API gehen.

e-gon 18. Apr 2021 17:15

AW: Breite Linie schießt über Ziel hinaus
 
Hallo brechi,

genau nach sowas habe ich gesucht. Danke! :thumb:

Gruß
e-gon

KodeZwerg 18. Apr 2021 17:34

AW: Breite Linie schießt über Ziel hinaus
 
Liste der Anhänge anzeigen (Anzahl: 1)
hier im ganzen als bild :-)

Redeemer 18. Apr 2021 17:57

AW: Breite Linie schießt über Ziel hinaus
 
PS_Endcap_Square ist nicht, was der TE wollte. Der wollte PS_Endcap_Flat (sog. Butt).


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:39 Uhr.

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