De digitale vraagbaak voor het wiskundeonderwijs

home |  vandaag |  gisteren |  bijzonder |  prikbord |  gastenboek |  wie is wie? |  contact

HOME

samengevat
vragen bekijken
een vraag stellen
hulpjes
zoeken
FAQ's
links
twitter
boeken
help

inloggen

colofon

  \require{AMSmath} Printen

Rotatie zoeken

Beste

Ik ben bezig met grafen matchen mijn bachelorproef. Deze kunnen geroteerd staan ten opzichte van elkaar. Ik weet welke co÷rdinaten van de ene graaf overeenkomen met welke co÷rdinaten van de andere graaf. Ik ben hiervoor een programma aan het schrijven in C++.
Ik kan dus bijvoorbeeld twee punten kiezen; een van de eerste en een van de tweede dat overeenkomt met dat van de eerste. Nu zoek ik hoeveel graden de tweede dan geroteerd is en over welke as.
Ik heb al gekeken naar de axis-angle methode, maar bij het narekenen bleek dit niet te kloppen.

Femke
Student Hoger Onderwijs BelgiŰ - vrijdag 18 mei 2012

Antwoord

Hallo Femke,

Uit jouw vraag wordt mij niet helemaal duidelijk met welk probleem je nu zit. Als ik het goed begrijp, heb je een set punten waarvan de co÷rdinaten ten opzichte van elkaar een vaste positie hebben (zoals stippen op een voetbal). Dit geheel (de voetbal dus) gaat van een oude positie naar een nieuwe positie. De co÷rdinaten van deze stippen zijn bekend, zowel in de oude als in de nieuwe positie. Nu wil je de verplaatsing van deze voetbal wiskundig beschrijven. Is dit de juiste interpretatie van jouw probleem?

Zo'n verplaatsing kan worden beschreven als een translatie volgens een vector, gecombineerd met een rotatie rond deze vector, ik neem aan dat je dit bedoelt met de axis-angle methode. Dit is op zich een prettige methode om zo'n verplaatsing te beschrijven: je hebt bijvoorbeeld niet het volgorde-probleem dat optreedt wanneer je afzonderlijke rotaties rond x-, y- en z-as zou beschrijven.

Deze methode heeft zijn bestaansrecht wel bewezen. Wanneer jouw berekeningen niet kloppen, zit er kennelijk nog een fout in jouw computerprogramma. Ik kan niet beoordelen of je het juiste algoritme gebruikt. Heb je er bijvoorbeeld rekening mee gehouden dat co÷rdinaten waarschijnlijk afgeronde getallen zijn? Hierdoor is de onderlinge positie niet mathematisch exact constant. Je kunt dus niet 'zomaar' de verplaatsing van twee of drie punten berekenen en dan 'hopen' dat de overige punten volgens dezelfde beweging op de nieuwe positie terechtkomen. Je zult een translatie+rotatie moeten berekenen die zo goed mogelijk past bij de verplaatsing van alle punten gezamenlijk.

Ik weet niet of jouw algoritme klopt, het zou voor ons ook te ver gaan om een eventuele fout in het programma op te sporen. Ik heb wel een verwijzing voor je naar een artikel waarin deze procedure stap voor stap beschreven wordt. Dit artikel is:

Rigid body motion calculated from spatial co-ordinates of markers
Journal of Biomechanics, Volume 13, Issue 4, 1980, Pages 391-393
C.W. Spoor, F.E. Veldpaus

Hopelijk kom je hiermee verder, het is best een klus om hiervoor een goed programma te schrijven!

Wie is wie?
Vragen naar aanleiding van dit antwoord? Klik rechts..!
vrijdag 18 mei 2012



klein |  normaal |  groot

home |  vandaag |  bijzonder |  twitter |  gastenboek |  wie is wie? |  colofon

©2001-2020 WisFaq - versie IIb