Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Punkt um Punkt rotieren + Rotationsachse (https://www.delphipraxis.net/161784-punkt-um-punkt-rotieren-rotationsachse.html)

Cyberstorm 20. Jul 2011 17:15

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

daywalker9 20. Jul 2011 18:02

AW: Punkt um Punkt rotieren + Rotationsachse
 
Es gibt für OpenGL gute Tutorials auch für Delphi:

http://wiki.delphigl.com/index.php/Tutorial

Da würde ich mal reinschauen, da werden eigentlich alle Grundlagen (Verschieben etc..) behandelt

Cyberstorm 20. Jul 2011 21:43

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?

jfheins 20. Jul 2011 21:58

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:

Diesen Punkt um einen bestimmten anderen Punkt (x, y, z) und Rotationsachse (angle, angle, angle) drehen
Die ersten beiden Winkel geben die Lage der Achse an und der dritte ist der Winkel um den rotiert werden soll?

Jens01 20. Jul 2011 22:14

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 http://www.swissdelphicenter.ch/de/math.php

Medium 21. Jul 2011 01:02

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.

Cyberstorm 26. Jul 2011 14:46

AW: Punkt um Punkt rotieren + Rotationsachse
 
Danke Euch!

Benutze nun den Code von: http://www.swissdelphicenter.ch/de/showcode.php?id=2093


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