[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