[ODE] matrix multiplication

Fig TaTam fig_tatam at hotmail.com
Wed Mar 12 14:26:01 2003


I think I understand how to concatinate rotations, but it's not working. Can 
you check if this code is right:

dMatrix3 R;
// then R is set to some rotation
dMultiply0(R, R, dBodyGetRotation(getBodyID()), 3, 4, 3);

So now R should equal to rotation of some dBody plus the rotation originally 
held by R, is it right?


>From: <jnilson_99@yahoo.com>
>To: ode@q12.org
>Subject: Re: [ODE] matrix multiplication
>Date: Wed, 12 Mar 2003 08:27:41 -0800 (PST)
>
>
>For what it's worth the following great book has a
>simplified explanation of this and other matrix
>tecniques. While not a "Game Math for Dummies" it does
>explain matrix math simply and from a game programmer
>point of view instead of the usual matrix explanations
>which are geared toward mathematicians.
>
>http://www.amazon.com/exec/obidos/tg/detail/-/1556229119/qid=1047486129/sr=1-1/ref=sr_1_1/103-4731875-8322238?v=glance&s=books
>
>  So if you stupidly majored in something like History
>realized Law School was a complete waste of time and
>switched careers into game programming this book is
>for you.
>
>john
>
>
>
>--- Henri Hakl <henri@cs.sun.ac.za> wrote:
> > It's quite simple, consider:
> >
> > A = B * C
> >
> > if B is a 5 x 3 matrix and C is a 3 x 4 matrix then
> > A will be a 5 x 4
> > matrix, (B's second and C's first parameter HAVE to
> > be the same, the
> > resultant matrix has dimensions according to B's
> > first and C's second
> > parameter), accordingly you'd use:
> >
> > dMultiply0(A, B, C, 5, 3, 4)
> >
> >
> > ----- Original Message -----
> > From: "Fig TaTam" <fig_tatam@hotmail.com>
> > To: <ODE@q12.org>
> > Sent: Wednesday, March 12, 2003 12:32 PM
> > Subject: [ODE] matrix multiplication
> >
> >
> > > ok, I figured out how to do that rotation I
> > wanted, so don't respond to
> > > topic "Re: [ODE] rotation matrix from normalized
> > vector?"
> > >
> > > But now I have a question about matrix
> > multiplication. Ode has a function
> > > for that described as:
> > >
> > > /* matrix multiplication. all matrices are stored
> > in standard row format.
> > > * the digit refers to the argument that is
> > transposed:
> > > *   0:   A = B  * C   (sizes: A:p*r B:p*q C:q*r)
> > > *   1:   A = B' * C   (sizes: A:p*r B:q*p C:q*r)
> > > *   2:   A = B  * C'  (sizes: A:p*r B:p*q C:r*q)
> > > * case 1,2 are equivalent to saying that the
> > operation is A=B*C but
> > > * B or C are stored in standard column format.
> > > */
> > >
> > > void dMultiply0 (dReal *A, const dReal *B, const
> > dReal *C, int p,int q,int
> > > r);
> > >
> > > What I don't understand is what I'm supposed to
> > pass as 'p', 'q', and 'r'.
> > > Anyone know?
> > >
> > >
> >
>_________________________________________________________________
> > > Protect your PC - get McAfee.com VirusScan Online
> > >
> >
>http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963
> > >
> > > _______________________________________________
> > > ODE mailing list
> > > ODE@q12.org
> > > http://q12.org/mailman/listinfo/ode
> >
> > _______________________________________________
> > ODE mailing list
> > ODE@q12.org
> > http://q12.org/mailman/listinfo/ode
>
>
>__________________________________________________
>Do you Yahoo!?
>Yahoo! Web Hosting - establish your business online
>http://webhosting.yahoo.com
>_______________________________________________
>ODE mailing list
>ODE@q12.org
>http://q12.org/mailman/listinfo/ode


_________________________________________________________________
Protect your PC - get McAfee.com VirusScan Online 
http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963