[ODE] Is it possible to Scale a given Inertia-Matrix?
GARY VANSICKLE
g.r.vansickle at worldnet.att.net
Wed Jun 16 21:51:25 MST 2004
> Ixx = SUMi (mi * (yi^2 + zi^2))
> Iyy = SUMi (mi * (xi^2 + zi^2))
> Izz = SUMi (mi * (xi^2 + yi^2))
> Ixy = - SUMi ( mi * xi * yi )
> Ixz = - SUMi ( mi * xi * zi )
> Iyz = - SUMi ( mi * yi * zi )
>
> assume: xi = scalex * nxi, yi = scaley * nyi, zi = scalez * nzi
>
> so the simplier version :) is :
> Ixx = SUMi (mi * (scaley^2 nyi^2 + scalez^2 * nzi^2))
> Iyy = ..
> Izz = ..
> Ixy = - SUMi (mi * scalex * nxi * scaley * nyi)
> Iyz =
> Ixz = ...
>
> "I" can only be scale when "scalex == scaley == scalez == scale" because
> of
> Ixx, Iyy, Izz square xi,yi,zi
>
> NewIxx = scale^2 Ixx
> NewIyy = scale^2 Iyy
> NewIzz = scale^2 Izz
> NewIxy = scale^2 Ixy
> NewIxz = scale^2 Ixz
> NewIyz = scale^2 Iyz
>
> ---------------------------------
> OR: the extended :) version
>
> Ixx = SUMi (mi * (yi^2 + zi^2)) = SUMi (mi * yi^2) + SUMi (mi * zi^2) = b
> +
> c
> Iyy = SUMi (mi * (xi^2 + zi^2)) = a + c;
> Izz = SUMi (mi * (xi^2 + yi^2)) = a + b;
>
> Ixy = - SUMi (mi * oldscalex * nxi * oldscaley * nyi)
> Iyz =
> Ixz = ...
>
> compute a,b,c - solve linear set of equations
>
> and apply the new scale:
>
> NewIxx = nscaley^2 * b + nscalez^2 * c
> NewIyy = nscalex^2 * a + nscalez^2 * c
> NewIzz = nscalex^2 * a + nscaley^2 * b
> NewIxy = nscalex * nscaley * Ixy;
> NewIyz = nscaley * nscalez * Iyz;
> NewIxz = nscalex * nscalez * Ixz;
>
> Petr Sovis
>
> P.S. I hope, I'm right. Otherwise, sorry for mislead.
Weren't computers supposed to be doing all this math for us by now?
;-)
--
Gary R. Van Sickle
More information about the ODE
mailing list