Vector om vector draaien

Moderators: dirkwb, Xilvo

Reageer
Berichten: 36

Vector om vector draaien

Hallo iedereen,

ik denk dat dit een beetje laag niveau is voor dit rubriek maar het is ook geen huiswerk dus daar wou ik het ook niet neerzetten.

ik wil een vector (in 3D) om een andere vector draaien. Als je om de x, y of z as draait is dat vrij simpel te doen met de 'standaard' rotatie matricen. is er ook een rotatie matrix voor mijn probleem?

volgens mij doet dit er niet toe maar de twee vectoren staan altijd loodrecht op elkaar.

Alvast bedankt,

Steino

Gebruikersavatar
Berichten: 7.390

Re: Vector om vector draaien

Weet je wat transformatiematrices zijn en hoe je ze opstelt?
"C++ : Where friends have access to your private members." Gavin Russell Baker.

Berichten: 36

Re: Vector om vector draaien

een matrix welke je keer een vector(matrix) kan doen waardoor er een nieuw vector(matrix) komt met dezelfde afmeting als het oorspronkelijke? dus bijvoorbeeld de rotatiematrices zijn transformatiematricen.

opstellen gaat door een bekende transformatie op te lossen dus

X' = A*X

als je X' en X al weet kan je daardoor de transformatie matrix A afleiden.

Gebruikersavatar
Berichten: 7.390

Re: Vector om vector draaien

Om te vermijden dat we twee maal hetzelfde uitleggen: http://www.wetenschapsforum.nl/index.php?s...128729&st=0

Is dat wat je zoekt?

Zoniet, mag je gerust verder vragen.
"C++ : Where friends have access to your private members." Gavin Russell Baker.

Berichten: 36

Re: Vector om vector draaien

als ik er zo vluchtig doorheen kijk lijkt dat niet te zijn wat ik zocht. als dat wel zo is, mijn excuses voor het herhalen van een vraag, ik had namelijk wel de zoekfuctie eerst geprobeerd. ;)

toevallig heb ik net mijn probleem opgelost:

op deze site: http://www.blitzbasic.com/Community/posts.php?topic=57616 vond ik de volgende tekst die mij verder hielp:
TeaMonkey, thank you. Here is the function, translated to Blitz:

;Rotate the point (x,y,z) around the vector (u,v,w)

Function RotatePointAroundVector(x#,y#,z#,u#,v#,w#,a#)

ux#=u*x

uy#=u*y

uz#=u*z

vx#=v*x

vy#=v*y

vz#=v*z

wx#=w*x

wy#=w*y

wz#=w*z

sa#=Sin(a)

ca#=Cos(a)

x#=u*(ux+vy+wz)+(x*(v*v+w*w)-u*(vy+wz))*ca+(-wy+vz)*sa

y#=v*(ux+vy+wz)+(y*(u*u+w*w)-v*(ux+wz))*ca+(wx-uz)*sa

z#=w*(ux+vy+wz)+(z*(u*u+v*v)-w*(ux+vy))*ca+(-vx+uy)*sa

End Function

It might be possible to simplify it further, since this is for a point, and I just need to rotate the vector (a point with a magnitude of 1.0).
het is dan wel geen matrix maar het heeft (hopelijk) mijn probleem opgelost.

iedereen in ieder geval bedankt voor het meekijken.

Stein

Berichten: 36

Re: Vector om vector draaien

Voor andere mensen die dit zoeken; de formules werken. Wel moet erop gelet worden dat de twee vectoren eenheidsvectoren zijn (u^2 + v^2 + w^2 = 1).

Gebruikersavatar
Berichten: 10.179

Re: Vector om vector draaien

Verplaatst naar Lineaire Algebra en Meetkunde
Zoek je graag naar het meest interessante wetenschapsnieuws? Wij zoeken nog een vrijwilliger voor ons nieuwspostteam.

Reageer