Springen naar inhoud

Vector om vector draaien


  • Log in om te kunnen reageren

#1

Steino

    Steino


  • >25 berichten
  • 36 berichten
  • Gebruiker

Geplaatst op 13 juni 2011 - 17:57

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

Veranderd door Steino, 13 juni 2011 - 18:08


Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

In physics I trust

    In physics I trust


  • >5k berichten
  • 7384 berichten
  • Moderator

Geplaatst op 13 juni 2011 - 18:30

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

#3

Steino

    Steino


  • >25 berichten
  • 36 berichten
  • Gebruiker

Geplaatst op 13 juni 2011 - 18:41

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.

#4

In physics I trust

    In physics I trust


  • >5k berichten
  • 7384 berichten
  • Moderator

Geplaatst op 13 juni 2011 - 20:24

Om te vermijden dat we twee maal hetzelfde uitleggen: http://www.wetenscha...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.

#5

Steino

    Steino


  • >25 berichten
  • 36 berichten
  • Gebruiker

Geplaatst op 13 juni 2011 - 20:42

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.blitzbasi...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

#6

Steino

    Steino


  • >25 berichten
  • 36 berichten
  • Gebruiker

Geplaatst op 14 juni 2011 - 11:20

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).

#7

Drieske

    Drieske


  • >5k berichten
  • 10217 berichten
  • Moderator

Geplaatst op 16 juni 2011 - 17:34

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





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures