Om nog even terug te komen op gimbal lock.
Download even dit bestandje.
In het zipje van 31kB vind je een exe en de source en VC++6 Project files van het betreffende exe-je.
Heb ik net even in elkaar geknutseld, want ik had ook nog niet echt een duidelijk beeld van een gimbal lock. Ik zat te klooien met een pen enzo (als voorbeeld).
Komt er eenvoudig op neer dat rotatie aan de x-as gevolgen voor rotaties over de y-as en z-as heeft. En rotaties over de y-as heeft weer gevolgen voor de z-as.
Het is namelijk zo dat bij een euler transformatie het assenstelsel meedraait. Echter, aangezien de rotaties over de x-as voor die over de y-as plaatsvinden en die over de y-as voor die over z-as, kan het alleen ernstige bijwerkingen hebben voor rotatie over de z-as.
Stel dat je 90 graden om de y-as transformeerd. Wat gebeurt er dan? De z-as komt door de rotatie exact op de x-as te liggen. Beetje zuur want draaien aan de z-as is dan hetzelfde als draaien aan de x-as... Bovendien is het een effect wat ook "rond" dit kritieke punt merkbaar is.
Het effect van werken met quaternions is dat de assen van het geheel exact op dezelfde plek blijven en niet mee gaan bij het roteren van het object.