[x3d-public] Euler rotation

Joseph D Williams joedwil at earthlink.net
Mon Jan 7 06:46:09 PST 2019


From: John Carlson
Sent: Sunday, January 6, 2019 7:23 PM
To: Joseph D Williams; Albert Jan Wonnink; vmarchetti at kshell.com; X3D-Public
Subject: RE: [x3d-public] Euler rotation

➢ Can this be written up and placed on popular website?

What part do you want to get written up? My favorite now is whether to risk calling the default x3d axis x y z by the commonly understood terms of pitch yaw roll, respectively, just as a memory aid.  

Right, not accepting rotation degrees is a very interesting part of the x3d story. Maybe a point of departure from fixed frame rate to realtime and variabletime. 

➢ Thanks,
➢ John

<Transform DEF="x-rotation" rotation="1 0 0 0">
<Transform DEF="y-rotation" rotation="0 1 0 0">
<Transform DEF="z-rotation" rotation="0 0 1 0">
<!-- put vehicle model here 
       May be Important to consider recommendations 
       for drawing vehicle model axes relative to 
       default x3d rotation/orientation axes   -->
<Shape>...</Shape>
</Transform>
</Transform>
</Transform>
…
DEF Pitch OrientationInterpolator { 
key [ 0, 0.25 0.5, 0.75 1 ] 
keyValue [ 0 0 1 0, 1 0 0 1.5, 0 0 1 0, -1 0 0 1.5, 0 0 1 0 ] }
DEF Yaw OrientationInterpolator { 
key [ 0, 0.25 0.5, 0.75 1 ] 
keyValue [ 0 0 1 0, 0 1 0 1.5, 0 0 1 0, 0 -1 0 1.5, 0 0 1 0 ] }
DEF Roll OrientationInterpolator { 
key [ 0, 0.25 0.5, 0.75 1 ] 
keyValue [ 0 0 1 0, 0 0 1 1.5, 0 0 1 0, 0 0 -1 1.5, 0 0 1 0 ] }
…
Add timer(s) and routes to get data generated by interpolators and sent to transforms for vehicle model x (pitch) y (yaw) and z (roll) rotations. 
Add some vehicle internal and external viewpoints to see what is happening. 
Change the keyvalue(s) and see what happens. 
Change the key(s) and see what happens. 

Have Fun, 
Joe



From: Joseph D Williams
Sent: Sunday, January 6, 2019 7:20 PM
To: Albert Jan Wonnink; vmarchetti at kshell.com; X3D-Public
Subject: Re: [x3d-public] Euler rotation

Hi Albert and All, 
When you use euler (or Tait-Bryan) angles for a while you will find that you get problems. 
Actually there is plenty of writing about the details maybe even in the x3d or hanim archives and widely on the web.

In addition, when you create or edit the things much then you will find it is actually a lot easier to use quats or axis-angle radians. In general, for degrees, maybe your editing system may offer as a learning tool if radian is really an elementary block to learning, but really, never in the user code due to misleading simplicity and what ‘cha finally gonna tell ‘em when the gimbals lock? 

➢ <Transform DEF="yaw-rotation" rotation="0 0 1 $yaw">
➢ <Transform DEF="pitch-rotation" rotation="0 1 0 $pitch">
➢ <Transform DEF="roll-rotation" rotation="1 0 0 $roll">

Besides the fact that a variable is not allowed there 
(maybe use a prototype if you need a variable?) 
I don't think your naming of yaw and pitch and roll is reasonable for x3d. 

For default transform rotation 0 0 1 0, sit on it and face +z and find +y is up and +x is left. 
then fly the thing using pitch and yaw and roll.
The x3d axis-angle parameters are most likely pitch yaw roll then the scale, 
and I think the same order for quaternions, except where the 'scale' is placed and the special limits for values. 
 
Why not try the following:

DEF Pitch OrientationInterpolator { 
key [ 0, 0.25 0.5, 0.75 1 ] 
keyValue [ 0 0 1 0, 1 0 0 1.5, 0 0 1 0, -1 0 0 1.5, 0 0 1 0 ] }

DEF Yaw OrientationInterpolator { 
key [ 0, 0.25 0.5, 0.75 1 ] 
keyValue [ 0 0 1 0, 0 1 0 1.5, 0 0 1 0, 0 -1 0 1.5, 0 0 1 0 ] }

DEF Roll OrientationInterpolator { 
key [ 0, 0.25 0.5, 0.75 1 ] 
keyValue [ 0 0 1 0, 0 0 1 1.5, 0 0 1 0, 0 0 -1 1.5, 0 0 1 0 ] }

Thanks and Best,
Joe

From: Albert Jan Wonnink
Sent: Sunday, January 6, 2019 2:25 PM
To: vmarchetti at kshell.com; X3D-Public
Subject: Re: [x3d-public] Euler rotation

Thanks Vince, for your reply. 

As long as the angles and X3D code is  generated by code one can of course easily calculate the individual parameters for a quaternion. But during the testing of our experimental Unity based browser, and preparing scenes for that, I found it very easy to extend the transform specification with a degree-based Euler attribute (Tait-Bryan would also have worked).

The current system still makes it relatively difficult to manually apply an angle of the most used fractions of PI, doesn't it?

I guess this issue must have been discussed in one of the early days of the X3D specification. But it seems to me a lost chance to make it more convenient.

Regards


Albert Jan Wonnink



Van: vmarchetti at kshell.com <vmarchetti at kshell.com>
Verzonden: zondag 6 januari 2019 22:49
Aan: Albert Jan Wonnink; X3D-Public
Onderwerp: Re: [x3d-public] Euler rotation 
 
There is no single node Euler angle alternative representation of a rotation transform defined in the current (v 3.3) X3D standard.

You can get an easier to edit representation of Euler angle rotation (specifically the Tait-Bryan angles, https://en.wikipedia.org/wiki/Euler_angles#Tait%E2%80%93Bryan_angles, commonly used for vehicle oriented
with respect to the horizon, by nesting 3 Transforms:

<Transform DEF="yaw-rotation" rotation="0 0 1 $yaw">
<Transform DEF="pitch-rotation" rotation="0 1 0 $pitch">
<Transform DEF="roll-rotation" rotation="1 0 0 $roll">
<!-- put vehicle model here -->
<Shape>...</Shape>
</Transform>
</Transform>
</Transform>

where for $yaw, $pitch, $roll you need to substitute the numerical value of the rotation angle in radians.


Vince Marchetti

On Jan 6, 2019, at 12:53 PM, Albert Jan Wonnink <awonnink at hotmail.com> wrote:

Is there, or should there be, an Euler alternative for the transform 'rotation' property? This makes direct x3d code editing much easier.

Regards,


Albert Jan Wonnink 
_______________________________________________
x3d-public mailing list
x3d-public at web3d.org
http://web3d.org/mailman/listinfo/x3d-public_web3d.org




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20190107/a48abbb4/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 9B68D1D68F1247D1A07F4C368D0D7215.png
Type: image/png
Size: 156 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20190107/a48abbb4/attachment-0001.png>


More information about the x3d-public mailing list