AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi [Graphics32] (Problem) Wie bewege ich ein Polygon auf eine fixe Position?
Thema durchsuchen
Ansicht
Themen-Optionen

[Graphics32] (Problem) Wie bewege ich ein Polygon auf eine fixe Position?

Ein Thema von ColeZero · begonnen am 8. Jul 2010 · letzter Beitrag vom 14. Jul 2010
Antwort Antwort
ColeZero

Registriert seit: 6. Sep 2007
18 Beiträge
 
#1

AW: [Graphics32] (Problem) Wie bewege ich ein Polygon auf eine fixe Position?

  Alt 8. Jul 2010, 19:38
Ich denke ich werd mir das mal anschauen und evtl. so machen, klingt für mich auch sehr hübsch Ich werde die Tage mich dran machen und schauen was nach einen schönen Wochenende bei SOnne im Garten so alles dabei rauskommt und die Ergebnisse hier rein stellen.

Danke dir für deine Hilfen/Anregungen

Viele Grüße
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.688 Beiträge
 
Delphi 2007 Enterprise
 
#2

AW: [Graphics32] (Problem) Wie bewege ich ein Polygon auf eine fixe Position?

  Alt 8. Jul 2010, 20:12
schönen Wochenende bei SOnne im Garten
38°C und Gewitter mit ~60% rel. Luftfeuchte nennst du schön!? Ich brauch'n Kaffee und tauch wieder in meinen Keller ab
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#3

AW: [Graphics32] (Problem) Wie bewege ich ein Polygon auf eine fixe Position?

  Alt 9. Jul 2010, 09:57
Das Problem bei den Graphics32 ist, dass es eben keine eigene Transformations-Matrix für ein TPolygon32 mitführt und somit auf diese nicht zugegriffen werden kann.
Wenn man ein Polygon über die TAffineTransformation transformiert, werden die Koordinaten der Punkte-Arrays in Polygon.Points direkt (und permanent!) überschrieben und nicht erst, wie z.B. bei OpenGL, eine Transformationsmatrix des Objektes verändert, die man nachher auch noch manipulieren könnte.

Du könntest dir aber z.B. eine eigene Klasse von TPolygon32 ableiten, die genau das macht, dass vor dem Zeichnen eben eine zuvor dem Polygon zugewiesene TAffineTransformation (per Matrix-Multiplikation) angewendet wird, die Punkte selbst aber nicht durch ein transform() überschrieben werden.
Dazu müsstest du die Draw() und Transform()-Routinen überschreiben und der neuen Klasse eine neue Property einer TAffineTransformation geben, die dann immer direkt vor dem Zeichnen angewendet wird.
Ab da arbeitest du dann nur noch mit der AffineTransformation. Diese kannst du über AffineTransformation.Clear() auch zurücksetzen, dadurch wird die Identitätsmatrix für die Transformation geladen.

Ich weiss jetzt ja nicht, was du genau mit dem Zeug vorhast, aber wenn es darum geht, mit Matrizen, Transformationen und Polygonen herumzuspielen, dann würde ich dir jetzt fast raten, vergiss die Graphics32 und nimm gleich OpenGL
Da bekommst du die Hardware-Beschleunigung frei Haus und noch diverse andere Nettigkeiten, und vor Allem...es wird nie langweilig damit
Die Lernkruve ist zwar am Anfang ziemlich steil, aber wenn man mal die Grundbegriffe verstanden hat, macht es wirklich Spass.

Geändert von blackfin ( 9. Jul 2010 um 10:22 Uhr)
  Mit Zitat antworten Zitat
ColeZero

Registriert seit: 6. Sep 2007
18 Beiträge
 
#4

AW: [Graphics32] (Problem) Wie bewege ich ein Polygon auf eine fixe Position?

  Alt 14. Jul 2010, 11:40
Hallo Hallo,

danke dir blackfin für die Anregungen.

Ich hab mein Problem am Wochenende über eine eigene Klasse gelöst. Die neue Klasse wird von TPOlygon32 abgeleitet und wurde mit entsprechenden Matrizen versehen.
Weil ich auch gesehen hab, dass Transform vom Polygon direkt die Vertices verschiebt.
Es funktioniert so weit, aber ich bin nicht richtig glücklich damit. Ich glaube es ist/war den Aufwand nicht wirklich wert.

Was genau mein Vorhaben ist kann ich sagen, ich wollte eine Radial-Menu Komponente für ein Projekt von mit entwickeln. Also ein Menu, dass sich kreisförmig um ein Objekt öffnet. Mit der GDI kommt man nicht weit, finde ich zumin. und mit der GDI+ auch nicht, weil sie einfach zu lahm ist und viel CPU verbraucht. Vielleicht komme ich mit OpenGL besser an eine Lösung.

Ich werde mich wieder melden

Vielen Dank nochmals und schöne Grüße
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:49 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