[X3D-Public] JavaScript: Question to SFMatrix3f.set/getTransform
doug sanden
highaspirations at hotmail.com
Mon Oct 20 19:20:35 PDT 2014
Perhaps there is a reference implementation, committee notes to explain, or perhaps the design should be changed to a scalar rotation.
-doug
> Date: Mon, 20 Oct 2014 21:13:46 +0200
> From: holger.seelig at yahoo.de
> To: x3d-public at web3d.org
> Subject: Re: [X3D-Public] JavaScript: Question to SFMatrix3f.set/getTransform
>
> No, this cannot be right Doug. The point about which the rotation occurs
> is the translation/origin of the matrix3 and the translation is the
> first argument to get/setTransform:
>
> A matrix3 consists of 4 values: translation, rotation, scale,
> scaleOrientation. Let's look how it works: A coordinate system with two
> orthogonal axes x, and y that have both a length of one is translate by
> »translation« to an arbitary place. Then the coordinate system or better
> the two axes are scaled, mostly independently, by muliplying by an
> amount. Then the coordinate system is rotated by an amount about the
> origin (which is the translation), in 2d this rotation value is normally
> a simple number, the angle, in degrees or radians, we could express this
> rotation also as complex number.
>
> Let's take a simple float number as rotation phi we can construct a
> rotation matrix3 as follow:
>
> Convension: matrix3 organized in row-major fashion:
> x-axis 0
> y-axis 0
> x y 1
>
> cos (phi) sin (phi) 0
> -sin (phi) cos (phi) 0
> 0 0 0
>
> The first two numbers in the third row of a matrix3 is the translation,
> and this is the point about which the rotation occurs.
>
>
> Am 20.10.2014 um 19:29 schrieb doug sanden:
> >
> > My guess/hypothesis: Matrix3 2D rotation SFVec3f = (x,y,angle)
> > - where x,y is the 2D point about which the rotation occurs(?)
> > (don't compute rotation from xy)
> > I base that on my hypothesis the designers were attempting to make Matrix3 analogous to Matrix4.
> > See also the documentation on Transform node for how to apply scaleOrientation for 3D, which takes a series of steps.
> >
> > ________________________________
> >> Date: Mon, 20 Oct 2014 19:05:15 +0200
> >> Subject: AW: Re: [X3D-Public] JavaScript: Question to
> >> SFMatrix3f.set/getTransform
> >> From: holger.seelig at yahoo.de
> >> To: highaspirations at hotmail.com; x3d-public at web3d.org
> >>
> >> A matrix3 is coordinate system in 2d space, that has a origin (the
> >> translation) and a rotation and a scale and scaleOrientation. You Doug
> >> says, the first two values of the SFVec3f should be the complex number
> >> of the rotation, from that complex number I can calculate an angle.
> >> Should this be the third value?
> >>
> >>
> >> Von Samsung Mobile gesendet
> >>
> >>
> >> -------- Ursprüngliche Nachricht --------
> >> Von: doug sanden
> >> Datum:20.10.2014 18:49 (GMT+01:00)
> >> An: x3d-public at web3d.org
> >> Betreff: Re: [X3D-Public] JavaScript: Question to SFMatrix3f.set/getTransform
> >>
> >> I think matrix3 is a 2D homogenous transform, much like matrix4 is a 3D
> >> homogenous transform. For 3D a rotation has 4 values: a 3D direction
> >> vector for the axis of rotation, and 4th value for the rotation angle
> >> about that axis.
> >> For matrix3 (2D), there would be something analogous, but with one less
> >> dimension. Likely 2 values xy for a point of rotation, and a 3rd value
> >> for the angle of rotation about that point. scale orientation in 2D
> >> would need a point and rotation.
> >> -Doug
> >>
> >>
> >> ----------------------------------------
> >>> Date: Mon, 20 Oct 2014 18:34:28 +0200
> >>> From: holger.seelig at yahoo.de
> >>> To: x3d-public at web3d.org
> >>> Subject: [X3D-Public] JavaScript: Question to SFMatrix3f.set/getTransform
> >>>
> >>> I cannot figure out what are the second and fourth argument of
> >>> SFMatrix.getTransform are, the spec says:
> >>>
> >>> SFMatrix3f .setTransform setTransform (SFVec2f translation,
> >>> SFVec3f rotation,
> >>> SFVec2f scale,
> >>> SFVec3f scaleOrientation,
> >>> SFVec2f center)
> >>>
> >>> I can see that a SFVec3f should be used for the rotation arguments, but
> >>> I don't know what the three values (x,y,z) stand for. To my
> >>> understanding like the TexureTransform node a matrix3 rotation is only a
> >>> simple float. I know that simple numbers cannot be passed by value to a
> >>> JavaScript function.
> >>>
> >>>
> >>> --
> >>> Holger Seelig
> >>> Mediengestalter Digital – Digital Media Designer
> >>>
> >>> Scheffelstraße 31a
> >>> 04277 Leipzig
> >>>
> >>> Telefon: 01577 147 26 11
> >>> E-Mail: holger.seelig at yahoo.de
> >>>
> >>> _______________________________________________
> >>> X3D-Public mailing list
> >>> X3D-Public at web3d.org
> >>> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
> >>
> >> _______________________________________________
> >> X3D-Public mailing list
> >> X3D-Public at web3d.org
> >> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
> >
> > _______________________________________________
> > X3D-Public mailing list
> > X3D-Public at web3d.org
> > http://web3d.org/mailman/listinfo/x3d-public_web3d.org
> >
>
>
> --
> Holger Seelig
> Mediengestalter Digital – Digital Media Designer
>
> Scheffelstraße 31a
> 04277 Leipzig
> Germany
>
> Cellular: +49 1577 147 26 11
> E-Mail: holger.seelig at yahoo.de
> Web: http://titania.create3000.de
>
> _______________________________________________
> 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/20141020/218be621/attachment.html>
More information about the X3D-Public
mailing list