Delphi-PRAXiS

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 13: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 14: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 14: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 14: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 15: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 16: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 11: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 15: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 17: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 18: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

Reap3r 23. Mär 2009 14:10

Re: Canvas-Polygon
 
Liste der Anhänge anzeigen (Anzahl: 1)
Sry, aber ich weiß echt nicht, was falsch ist! :(

Ich hänge nochmal das Programm an...

Dabei habe ich nun schon probiert den Mittelpunkt im Image zu definieren usw.

Vll schaust du dir das mal an und sagst mir dann, was falsch ist bzw. schreibst ihn so, dass es funktioniert.^^

Das ist immer am leichtesten nach zu vollziehen.

Danke für allen Aufwand... :corky:

mr_emre_d 24. Mär 2009 01:01

Re: Canvas-Polygon
 
Liste der Anhänge anzeigen (Anzahl: 1)
Schau dir das kleien Demo-Dino an :)

MfG und gute Nacht

Reap3r 24. Mär 2009 14:24

Re: Canvas-Polygon
 
Sry, aber ich bekomm es net hin das einzubauen!

Ich habe nun 3,5 std. daran rumprobiert, aber es geht einfach nicht. :(

Ich würde es aber trotzdem gern hinkriegen...

Ich weiß, dass es etwas Arbeit ist, aber könntest du diese Variante mit der TrackBar in mein Programm einbauen?

Sonst blick ich das nie!

Es reicht, wenn du es für den einen Stern machen würdest.

Es geht nur darum, dass ich es versteh.

Danke für allen Aufwand!

mfG


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