AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [Rotationsmatrix] nacheinander Drehung
Thema durchsuchen
Ansicht
Themen-Optionen

[Rotationsmatrix] nacheinander Drehung

Ein Thema von chaoslion · begonnen am 13. Mai 2006 · letzter Beitrag vom 13. Mai 2006
Antwort Antwort
chaoslion

Registriert seit: 1. Mär 2006
52 Beiträge
 
#1

[Rotationsmatrix] nacheinander Drehung

  Alt 13. Mai 2006, 16:59
Hey

Also ich habe nen Vektor (x,y,z) und ne Drehmatrix, zb um y
Delphi-Quellcode:
type
  TVek3d=record
    x,y,z:real;
end;

type
  TMatrix33=record
    sp1,sp2,sp3:TVek3d;
end;
//...

function RotMatY(alpha: Real):TMatrix33;
    begin
      result := CreateMat(
      cos(alpha) ,0.0 ,-sin(alpha),
      0.0 ,1.0 ,0.0,
      sin(alpha) ,0.0 ,cos(alpha)
      );
    end;
so nun fahre ich so weiter:
ich erstelle eine matrix mit der function matrix1:=RotMatY(65)
dann multipliziere ich den vektor mit der matrix , den dabei enstanden Vektor
zeichne ich. Klappt auch alles aber wie kann ich eine nacheinander Drehung um die 3 Achsen
machen, also 30° um x, 10° um y und 124° um z ??
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: [Rotationsmatrix] nacheinander Drehung

  Alt 13. Mai 2006, 17:27
Hi.

Wie für die Rotation um die Y-Achse, so gibt es auch Rotationsmatrizen für die beiden anderen Achsen:

Code:
Rotation um die z-Achse

cos(a)   -sin(a)   0
sin(a)   cos(a)    0
0         0          1

Rotation um die x-Achse

1     0         0
0     cos(a)   -sin(a)
0     sin(a)   cos(a)
Durch Multiplikation der Matrizen werden die einzelnen Rotationen in einer Matrix kombiniert. Das gilt übrigens für alle Transformationsarten (Translation, Shearing, Scaling).

Grüße vom marabu
  Mit Zitat antworten Zitat
chaoslion

Registriert seit: 1. Mär 2006
52 Beiträge
 
#3

Re: [Rotationsmatrix] nacheinander Drehung

  Alt 13. Mai 2006, 18:59
ja für Rotation um X und Z Achse hab ich auch Funktionen.

Also muss ich wenn ich rotieren und skalieren will, nur die Rotationsmatrix * Skalierungsmatrix
und die resultierende Matrix*Vektor rechnen??
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: [Rotationsmatrix] nacheinander Drehung

  Alt 13. Mai 2006, 21:29
Richtig - durch die Vorberechnung komplexer Transformationen wird dann wertvolle Rechenzeit gespart. Im Win32 SDK, der bei Delphi Installation an Bord ist, kannst du einiges zu Koordinaten-Räumen und Transformationen lesen, wenn du mit dem Thema noch nicht so vertraut sein solltest.

marabu
  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 03:18 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