Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Mit Canvas zeichnen (Diagramme) (https://www.delphipraxis.net/28145-mit-canvas-zeichnen-diagramme.html)

Christian18 20. Aug 2004 08:30


Mit Canvas zeichnen (Diagramme)
 
Hallo,

ich habe ein kleines Problem. Ich möchte gerne eine Procedure oder eine Funktion schreiben, wo ich nur ein paar Parameter übergeben muß und dann wird der Kreis anschließend automatisch gezeichnet. Ich dachte mir das ich folgende Parameter über gebe: z.b. Anzahl der Kreise und Anzahl der Sektoren. Das Objekt was ich zeichnen will sieht aus wie ein Spinnennetz oder Technisch ausgedrückt wie eine Festplatte. mein Problem ist jetzt ich weiß nicht wie ich das machen soll das die Procedure oder function automatisch dieses Netz erzeugt

angos 20. Aug 2004 08:52

Re: Mit Canvas zeichnen (Diagramme)
 
versuche die Funktion mal mit folgenden Parametern:
Anzahl der Kreise, Abstand der Kreise zueinander und die Anzahl der Sektoren.
Bei den Kreisen kannst du dann ja mit Canvas.Ellipse(ConstRect) arbeiten.
Wenn du nicht weiterweist, poste doch mal bitte den Sourcecode den du dazu schon hast.

Remote1 20. Aug 2004 08:54

Re: Mit Canvas zeichnen (Diagramme)
 
wenn das so ne art spinnennetz werden soll, dann wird der kreis ja eigentlich nur immer größer und da würd ich eher zu einer schleife greifen
Delphi-Quellcode:
for i:=10 downto 1 do
canvas.ellipse(100-(i*10),100-(i*10),500+(i*10),500+(i*10))
achte auf downto da sich sonst die kreise jeweils wieder "überschmalen"

Christian18 20. Aug 2004 09:13

Re: Mit Canvas zeichnen (Diagramme)
 
der abstand zu den einzelnen kreisen, der soll immer gleich sein. und der kleinste lreis, der soll in der mitte gezeicchnet werden. Also der mittelpunkt.

Christian18 20. Aug 2004 10:05

Re: Mit Canvas zeichnen (Diagramme)
 
ok dass mit den kreisen habe ich jetzt fertig, und wie kann ich es realisieren, dass auch noch die linien eingezeichnet werden??? ist auch ein paarameter den ich festlege und dann sollen die stücke gleichmäßig verteilt werden. wenn ich den parameter 3 festlege, dann soll ein stück kuchen sage ich jetzt mal 33,3 % groß sein. Wie kann ich das machne???

Mit feundlichen Grüßen

Christian18

PS: Schon einmal vielen dank für eure hilfe.

Nikolas 20. Aug 2004 10:11

Re: Mit Canvas zeichnen (Diagramme)
 
Da wirst du wohl um etwas Trigonometrie und Moveto() bzw Lineto() nicht rumkommen. Also bei 3 Teilen die 2pi (Vollkreis) in drei Teile teilen und dann Moveto(zum Mittelpunkt) und dann Lineto(Sin(2pi/3*Durchmesser,cos(2pi/3 *Durchmesser). Dann das gleiche mit 2(2pi/3) und 3(2pi/3) und du hast drei Linien mit WInkelabstand 120°;

SirThornberry 20. Aug 2004 10:13

Re: Mit Canvas zeichnen (Diagramme)
 
dann musst du den winkel ausrechen und die linie (canvas.lineto) malen. Hab für sowas vor gaaaaaaaaanz langer zeit mal ne unit gepostet die eine Klasse "2DMove" oder so hatte. Da braucht man nur angeben wo der Punkt losgeht, dann in welchem Winkel die Linie sein soll, und wohin sich das ganze bewegen soll. War ursprünglich für ein Autospiel wo man aus der Vogelperspektive schaut

[Edit]Hier der Link zu dem Post http://www.delphipraxis.net/internal...=106925#106925 [/Edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:49 Uhr.

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