![]() |
Punkt um Punkt rotieren + Rotationsachse
Hallo,
ich suche nach einer Möglichkeit Punkte (3D-Koordinaten) um eine bestimmte andere 3D-Koordinate und Rotationsachse zu drehen. Nach meiner Recherge gibt es dafür Funktionen aus OpenGL oder Direct3D. Ich möchte lediglich Berechnungen umsetzen und keinerlei Visualisierung. --> kann ich per OpenGL oder Direct3D folgende Schritte realisieren?: 1. Einen Punkt im Raum erzeugen (x, y, z) 2. Diesen Punkt um einen bestimmten anderen Punkt (x, y, z) und Rotationsachse (angle, angle, angle) drehen 3. Die Koordinaten des Resultats auslesen Falls ja, kann jemand eine Empfehlung aussprechne oder hat evtl. sogar einen Schnipsel code für mich? Vielen Dank im Vorraus |
AW: Punkt um Punkt rotieren + Rotationsachse
Es gibt für OpenGL gute Tutorials auch für Delphi:
![]() Da würde ich mal reinschauen, da werden eigentlich alle Grundlagen (Verschieben etc..) behandelt |
AW: Punkt um Punkt rotieren + Rotationsachse
Hallo,
danke für den Link. Habe mir einiges durchgelesen und mich reingearbeitet. Werde mir aber immer unsicherer, ob OpenGL wirklich das Richtige für mein Vorhaben ist. Ich will wie gesagt garnichts darstellen sondern "nur" Koordinaten umrechnen. Gibt es denn keine Lib / Unit / Kompo / Funktion o.ä. um eine xyz Koordinate um einen bestimmten Punkt und Achse zu rotieren/skalieren? |
AW: Punkt um Punkt rotieren + Rotationsachse
Wie performant muss es denn sein? Kannst du es nicht einfach selber programmieren?
Du brauchst ja nur eine Funktion für die Translation und eine für die Rotation. Zitat:
|
AW: Punkt um Punkt rotieren + Rotationsachse
es gibt im Paket GLScene (bei sourceforge) die Unit VektorGeometry.pas, die hat einige und schnelle(Assembler) Methoden für solche geometrischen Fälle.
Allerdings muß man damit umgehen können, da dort viel mit Matrizen gearbeitet wird. Ansonsten gibt es einige Programmschnipsel hier ![]() |
AW: Punkt um Punkt rotieren + Rotationsachse
Komm von OGL und DX ganz schnell mal weg. Das sind reine Visualisierungstools, und so lange du nicht ein paar Millionen Punkte pro 40ms drehen willst, brauchst du auch keine Gedanken daran zu verschwenden die Grafikkarte überhaupt zu bemühen. Das ist reinste lineare Algebra, und wird von jeder gängigen CPU/FPU prima verrechnet. OGL und DX bieten zudem auch nicht so arg viel mehr an vorbereiteten Funktionen, d.h. du müsstest mit diesen APIs ohnehin fast das selbe an Eigenleistung bringen wie mit reinem Delphi. Schau dir z.B. mal in der Wikipedia die Artikel zur Rotationsmatrix an, da findet sich schon mal praktisch alles an Mathe, was du brauchen wirst.
|
AW: Punkt um Punkt rotieren + Rotationsachse
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:58 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 by Thomas Breitkreuz