Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Unfortunately

...

the

...

documentation

...

for

...

rotations

...

in

...

Wired4

...

is

...

a

...

bit

...

lacking.

...


Rotations

...

in

...

general

...

can

...

be

...

decomposed

...

into

...

three

...

consecutive

...

rotations

...

about

...

the

...

primary

...

axes.

...


R_x

...

=

...

R1R2R3

...


In

...

Wired,

...

the

...

choice

...

was

...

made

...

to

...

rotate

...

by

...

an

...

angle

...

omega

...

about

...

the

...

z

...

axis,

...

followed

...

by

...

a

...

rotation

...

by

...

theta

...

about

...

the

...

new

...

x

...

axis,

...

followed

...

by

...

a

...

rotation

...

about

...

phi

...

around

...

the

...

y

...

axis.

...


The

...

ultimate

...

reference,

...

as

...

usual,

...

is

...

the

...

code,

...

in

...

this

...

case

...

for

...

Matrix3D

In Wired4, the choice of rotation is
R_omega =

cos omega

-sin omega

0

sin omega

cos omega

0

0

0

1

R_theta =

1

0

0

0

cos theta

-sin theta

0

sin theta

cos theta

R_phi =

cos phi

0

sin phi

0

1

0

-sin phi

0

cos phi

We can multiply these entities in the right order to get the combined rotation around all three axes.
The code appears to perform the rotations in the order presented here, so we compute R_phi R_theta R_omega and get

sin(omega) sin(phi) sin(theta) + cos(omega)cos(phi)

cos(omega)sin(phi)sin(theta) - sin(omega)cos(phi)

sin(phi)cos(theta)

sin(omega) cos(theta)

cos(omega)cos(theta)

-sin(theta)

sin(omega) cos(phi)sin(theta) - cos(omega)sin(phi)

cos(omega)cos(phi)sin(theta)+sin(omega)sin(phi)

cos(phi)cos(theta)