![]() |
Kreis zeichnen mit gestrichelter Linie und Stärke mehr als 1
Hallo liebe Gemeinde,
und zwar habe ich folgendes Problem. Ich möchte einen Kreis zeichnen und die Umrandung soll gestrichelt sein. Leider gibt es ja die Beschränkung, dass gestrichelt nur mit Linienstärke 1 gibt. Kann man diese aufheben, weil ich benötige einen Linienstärke von mindesten 3. Danke schonmal im Voraus. Gruß, MTC [edit=SirThornberry]Titel korrigiert ("mehr als" oder "gleich wie" aber bitte nicht "mehr wie") Mfg, SirThornberry[/edit] |
Re: Kreis zeichnen mit gestrichelter Linie und Stärke mehr w
Hab jetzt kein Delphi da, aber... nimmste dir ein Canvas und stellst beim Pen, die Width (oder wie das heißt) auf 3, den Style auf psDash (glaub ich, schlag das einfach nach) und zeichnest ne Ellipse.
Achj aund. mehr _als_. "Wie" tut weh... |
Re: Kreis zeichnen mit gestrichelter Linie und Stärke mehr a
Und genau das macht Delphi nicht.
Denn sobald ich psDash einstelle, wird Width automatisch auf 1 gesetzt. Gruß, MTC |
Re: Kreis zeichnen mit gestrichelter Linie und Stärke mehr a
Selber schreiben :stupid:
Mit der Funktion Arc() (iirc) die Striche zeichnen und entsprechende Lücken lassen ;) |
Re: Kreis zeichnen mit gestrichelter Linie und Stärke mehr a
Ich habe nichts zu tun .. (langeweile):
Delphi-Quellcode:
Beispielsaufruf:
procedure DashEllipse( ACanvas: TCanvas; const Center: TPoint;
const Radius: Cardinal; const PenWidth: Byte = 1; const Distance: Byte = 4 ); var i, x: Integer; begin X := (360 div Distance); with ACanvas do begin Pen.Width := PenWidth; for i := 0 to X do if i mod 2 = 0 then Arc( Center.X-Radius, Center.Y-Radius, Center.X+Radius, Center.Y+Radius, Center.X + Round( cos( i*Distance*PI/180)*Radius ) , Center.Y + Round( sin( i*Distance*PI/180)*Radius ), Center.X + Round( cos( (i*Distance-Distance)*PI/180)*Radius ) , Center.Y + Round( sin( (i*Distance-Distance)*PI/180)*Radius ) ); end; end;
Delphi-Quellcode:
MfG :Pprocedure TForm1.FormPaint(Sender: TObject); begin DashEllipse( Canvas, Point( 200, 120 ), 100, 3 ); end; |
Re: Kreis zeichnen mit gestrichelter Linie und Stärke mehr a
WOW,
echt vielen Dank und vor allem für das super Beispiel. An das ARC hatte ich überhaupt nicht gedacht, weil ich zum ersten Mal etwas mit Canvas veranstalte. Supi und Danke nochmal. Gruß, MTC |
Re: Kreis zeichnen mit gestrichelter Linie und Stärke mehr a
Büdde :)
|
Re: Kreis zeichnen mit gestrichelter Linie und Stärke mehr a
Herzlich willkommen in der Delphi-PRAXiS, mtc!
Eine Alternative zu obigem Vorschlag wäre die Verwendung von ![]() ![]() Gruß Hawkeye |
Re: Kreis zeichnen mit gestrichelter Linie und Stärke mehr a
Ich hab noch ein weiteres Problem.
Und zwar geht das Ganze auch für ein Polygon, welches zum Beispiel aus 10 Punkten besteht? Ich muss nämlich mehrere Figuren zeichnen und die Strichstärke muss anpassbar sein. Und zwar einmal in der Stärke (Width) und zum anderen in dem Style (gepunktet, gestrichelt). Wäre echt super, wenn ihr mir da noch weiterhelfen könntet. Danke und Gruß, MTC |
Re: Kreis zeichnen mit gestrichelter Linie und Stärke mehr a
ein Polygon (TPolygon) ist nur ein Array aus Punkten (TPoint) -> Du müsstest in einer Schleife alle Punkte durchgehen und der Funktion (DashEllipse) als Center die einzelnen Punkte übergeben!
Versuchs mal selbst; anschließend helf ich dir! MfG |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:22 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-2025 by Thomas Breitkreuz