przeliczenie obrotów w 3D - z osi na eulera

przeliczenie obrotów w 3D - z osi na eulera
wil
  • Rejestracja: dni
  • Ostatnio: dni
0

Mam obrót dookoła dowolnej osi: n = x,y,z, i o kąt f.

Jak z tego wyliczyć te trzy kąty Eulera, znaczy trzy obroty, kolejno dookoła osi: x,y i z ?

fx = ? fy = ? fz = ?

  • Rejestracja: dni
  • Ostatnio: dni
0

Przeciwprostokątna(długość) * sins(kąt względem x) = punkt y względem osi

  • Rejestracja: dni
  • Ostatnio: dni
0

To co podałem wcześniej było względem osi Z.

Inne osie powinny być analogiczne.

X powinna być wysokością y * kątem z :) itp.

lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5069
0

Niestety, ale Twierdzenie Eulera można zastosować tylko do obrotu wokół punktu, a nie osi, więc lipa.
https://en.wikipedia.org/wiki/Euler_angles
http://mathworld.wolfram.com/EulerAngles.html

wil
  • Rejestracja: dni
  • Ostatnio: dni
0

Zatem jakie są te trzy kąty - nie ma?

w przeciwną stronę łatwo to wyliczyć, znaczy tak: trzy obroty -> oś + jeden kąt.

Po prostu mnożymy trzy kwaterniony:
qx = cos(fx/2), sin(fx/2)(1,0,0)
qy = cos(fy/2), sin(fy/2)
(0,1,0)
qz = cos(fz/2), sin(fz/2)*(0,0,1)

wtedy:
q = qz.qy.qx = cos(f/2), sin(f/2)*n.

No, ale mi chodzi o odwrotną operację, czyli jak odzyskać te trzy: qx,qy i qz, z finalnego q.

wil
  • Rejestracja: dni
  • Ostatnio: dni
0

a może nie ma z tym problemu.
https://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles

eq

tam jest: a13 = -sin(fy) - w pierwszej kolumnie na dole.
zatem: fy = arcsin(-a13);

no i tak po kolei wyciskamy te kąty;

c23 = sin(fx)cos(fy) -> sin(fx) = cos(fy)/c22, no a kąt fy już mamy, więc wyliczamy fx (o ile c22 <> 0);

i potem:
fz = ...

WY
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 64
0

A X * sin(alfa) + F(x) * sin(afla)?
Wzór na dowolną funkcję przesuniętą o kąt alfa.

wil
  • Rejestracja: dni
  • Ostatnio: dni
0

Nie wiem co tam bazgrolisz bezmyślnie jak małpolud-poliglota... napisz jak człowiek to zobaczym.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.