Delphi-PRAXiS
Seite 1 von 2  1 2   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Canvas-Polygon (https://www.delphipraxis.net/131257-canvas-polygon.html)

Reap3r 21. Mär 2009 14:40


Canvas-Polygon
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo!

Zurzeit ist in der Schule unsere Aufgabe, etwas mit Canvas und Polygon selst zu entwickeln.
eine Art Logo oder so etwas...

Ich habe mithilfe Anderer jetzt ein Programm geschrieben, das per ImageClick das Logo darstellt.

Hierbei habe ich mit CreateTriangle und CreateRectangle gearbeitet.

Jetzt ist meine Frage, ob ich das ganze "Logo" skalierbar machen kann, bzw. die Größe während das Programm läuft veränderbar machen kann... evtl durch angegebene Spinedits.

Das Project ist angehängt!

mr_emre_d 21. Mär 2009 15:07

Re: Canvas-Polygon
 
Ja das kannst du !
Dazu müsstest du wie folgt vorgehen:
-> Definiere dir einen Mittelpunkt(des Logos) als TPoint
-> Alle anderen Werte ala Eckpunkte der Triangles usw. Sind nun abhängig von diesem Punkt
-> Eine Längenvariable definieren ! zb Lange = 100;

Konkret würde das so aussehen:

Triangle links:
Eckpunkt rechts oben = Mittelpunkt X - Lange ^ Mittelpunk Y - Lange
Eckpunkt rechts unten = Mittelpunkt X - Lange ^ Mittelpunkt Y + Lange
Eckpunkt links mitte = Mittelpunkt X - Lange*2 ^ Mittelpunkt Y ...

so in etwa .. denn somit wären die Punkte abhängig von der Lange !

MfG

Reap3r 21. Mär 2009 15:53

Re: Canvas-Polygon
 
Wie setze ich einen Mittelpunkt fest?
Ist die variable "lange" eine feste zahl oder die zahl in einem Spinedit?

mr_emre_d 21. Mär 2009 15:56

Re: Canvas-Polygon
 
du deklarierst dir zwei Variablen:
Mittelpunkt: TPoint
und
Lange: Integer;

Nun setzt du im FormCreate den Mittelpunkt auf die Mitte des Formes !
(schau dir dazu die ClientWidth & ClientHeight Eigenschaften der Form an)

Anschließend Lange setzen ! Ich würd im FormCreate die Länge auf ~80 setzen

Nachher kannst du ja beim ändern des Spinedits sein Value der Länge zuweisen.

MfG

Reap3r 21. Mär 2009 16:06

Re: Canvas-Polygon
 
Kann ich den Mittelpunkt im mittelpunkt des images festlegen, damit es sich an der Form des Images orientiert=?

mr_emre_d 21. Mär 2009 17:23

Re: Canvas-Polygon
 
Kannst du ! Du kannst eig. alles mit Delphi !
Also frag nächstes mal nicht, ob du es kannst, sondern, wie du es schaffst !
;)

Also Mitte von Image = (X) Image-Left + Image-Width div 2 und (Y) Image-Top + Image-Height div 2

Falls du das natürlich auf dem Image haben willst, dann vergiss nicht, auf dem Canvas der Image zu zeichnen ! (Image.canvas...)

Reap3r 22. Mär 2009 12:10

Re: Canvas-Polygon
 
Sry, aber ich habe es jetzt längere Zeit versucht, aber iwie funktioniert es net. :wall:

Könntest du mir evtl. den Quellcode zum definieren des Mittelpunktes und der Länge und

zum Einbringen der beiden Variablen in den übrigen Quelltext zeigen?

mfG

mr_emre_d 22. Mär 2009 16:53

Re: Canvas-Polygon
 
Delphi-Quellcode:
TForm1...
  public
  ....
    MittelPunkt: TPoint;
    Lange: Integer;
  ....
  end ..

...

// formcreate:
MittelPunkt := Point( 200, 200 );
Lange := 100;
PS: Zeig mal her, was du schon soweit selbst geschafft hast !

Reap3r 22. Mär 2009 18:04

Re: Canvas-Polygon
 
Mein großes Problem ist, dass ich nicht weiß, wie ich diese beiden Variablen in das

Delphi-Quellcode:
CreateTriangle( Dreieck, Point( 100, 100), Point( 150, 50 ), Point( 200 , 100 ));
einbringe.... :wiejetzt:

mr_emre_d 22. Mär 2009 19:26

Re: Canvas-Polygon
 
Zitat:

Zitat von Reap3r
Mein großes Problem ist, dass ich nicht weiß, wie ich diese beiden Variablen in das

Delphi-Quellcode:
CreateTriangle( Dreieck, Point( 100, 100), Point( 150, 50 ), Point( 200 , 100 ));
einbringe.... :wiejetzt:

evt. so (willkürlich):

Delphi-Quellcode:
CreateTriangle( Dreieck, Point( Mittelpunkt.X-100, Mittelpunk.Y*100), Point( Mittelpunkt.X+150, MittelPunkt.Y-50 ), Point( Mittelpunk.X + 2*200 , -Mittelpunk.Y + 100 ));
(das ist jetzt einfach nur iwie .. du müsstest hast die Werte absolut auf den Mittelpunkt definieren :)

Also wären die XY Koordinaten des linken Dreiecks =
X & Y = links von Mittelpunkt
Rechter Eckpunkt 1 = oben, 2 = unten
linker Eckpunkt = selbe höhe, links ..

MfG


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:16 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