Portál AbcLinuxu, 10. května 2025 02:42

Dotaz: Rotace 3D objektu

27.8.2013 15:49 Mige_Amour | skóre: 12 | Benešov
Rotace 3D objektu
Přečteno: 500×
Odpovědět | Admin
Zdravím, řeším rotaci 3D objektu, kdy mám na obrazovce horizontální a vertikální slider, pomocí kterých objekt můžu rotovat.

Rotaci objektu určuji pomocí 3D vektoru, který obsahuje 3x úhel (x,y,z).

Horizontální rotace je super, dokud objekt nenakloním. Poté obyčejná rotace vypadá nesmyslně. Snad obrázek napoví, jak to myslím: https://docs.google.com/file/d/0BxV65iIK19geZzRBWjBoaXV1ZGs/edit.

Je jasné, že úhly bude třeba přepočítávat. A zde je ten problém, že se mi nedaří nalézt/vymyslet nějakou funkci, která by mi je přepočítala.

Nebude nějaký zdejší guru vědět?

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 1× (Mige_Amour (tazatel))
27.8.2013 16:24 potato
Rozbalit Rozbalit vše Re: Rotace 3D objektu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Googledocs fuj. Ale k věci... Jestli jsem z toho příkladu správně pochopil, čeho chceš dosáhnout, tak stačí nejprve provést rotaci kolem svislé osy z, poté náklon okolo osy x v pevném souřadnicovém systému. Tedy normálně

v' = Rnáklon Rrotace v

kde Rxxx jsou příslušené rotační matice.
28.8.2013 11:17 Mige_Amour | skóre: 12 | Benešov
Rozbalit Rozbalit vše Re: Rotace 3D objektu
Díky, tohle pomohlo.
28.8.2013 09:45 gamer
Rozbalit Rozbalit vše Re: Rotace 3D objektu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jestli počítáš rotaci ve 3D z eulerových úhlů, tak narazíš na tohle:
http://en.wikipedia.org/wiki/Gimbal_lock
Lepší je vykašlat se na eulerovy úhly a použít quaternion:
http://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.