ik ben op zoek naar een methode om een punt (x1,y1,z1) te roteren rond de oorsprong met a graden rond de x-as, b graden rond de y-as en c graden rond de z-as
ik heb al een andere vraag gelezen waarin een algemeen geval stond beschreven, maar daar raakte ik niet veel wijzer uit...
alvast bedankt!
Bernar
Student Hoger Onderwijs België - donderdag 4 december 2003
Antwoord
Erratum: in de Ry-matrix moet je de sin door een -sin vervangen, en de -sin door een +sin!!
Ten eerste moet je je bedenken dat het uitmaakt in welke volgorde je de rotaties uitvoert. Ga zelf maar eens na voor een punt (0,0,1). Een rotatie van (elk) 90° om resp. de y-as, de z-as en tot slot de x-as levert een heel ander eindpunt op dan rotaties van elk 90° om resp. de z-as, de x-as en tot slot de y-as.
Het beste is om te werken m.b.v. rotatie-matrices, die je loslaat op een plaatsvector a=(x,y,z)T (de T komt van getransponeerd en betekent dat je het rijtje x,y,z, in feite als een (vector)kolommetje moet zien).
Een rotatiematrix in 2 dimensies over hoek a ziet er als volgt uit:
in 3 dimensies ziet een rotatie over hoek a om de z-as er zó uit:
Je wilt echter rotaties om alledrie de assen uitvoeren. De rotaties per as zien er als volgt uit:
Wanneer je nu een punt a=(x,y,z)T hebt die je eerst om de z-as, dan om de y-as en tot slot om de x-as wilt roteren, dan is het beeldpunt a'=Rx.Ry.Rz.a
Dus als je (x,y,z) eerst over 18° om de y-as wilt roteren, dan -30° om de x-as, en dan over 50° om de z-as, dan geldt voor de coördinaten van het beeldpunt: