public static Matrix3d getRotationalInertiaMatrixOfTorus(double mass, double radiusOfDonut, double radiusOfTube) { double ixx = ((5.0 / 8.0 * radiusOfTube * radiusOfTube) + (1.0 / 2.0 * radiusOfDonut * radiusOfDonut)) * mass; double iyy = ixx; double izz = ((3.0 / 4.0 * radiusOfTube * radiusOfTube) + (radiusOfDonut * radiusOfDonut)) * mass; Matrix3d ret = getRotationalInertiaFromDiagonal(ixx, iyy, izz); return ret; }
public static Matrix3D getRotationalInertiaMatrixOfTorus(double mass, double radiusOfDonut, double radiusOfTube) { double ixx = ((5.0 / 8.0 * radiusOfTube * radiusOfTube) + (1.0 / 2.0 * radiusOfDonut * radiusOfDonut)) * mass; double iyy = ixx; double izz = ((3.0 / 4.0 * radiusOfTube * radiusOfTube) + (radiusOfDonut * radiusOfDonut)) * mass; Matrix3D ret = getRotationalInertiaFromDiagonal(ixx, iyy, izz); return ret; }
public static Matrix3D getRotationalInertiaFromRadiiOfGyration(double mass, double radiusOfGyrationX, double radiusOfGyrationY, double radiusOfGyrationZ) { checkMassAndDimensions(mass, radiusOfGyrationX, radiusOfGyrationY, radiusOfGyrationZ); double ixx = mass * (radiusOfGyrationY * radiusOfGyrationY + radiusOfGyrationZ * radiusOfGyrationZ); double iyy = mass * (radiusOfGyrationX * radiusOfGyrationX + radiusOfGyrationZ * radiusOfGyrationZ); double izz = mass * (radiusOfGyrationX * radiusOfGyrationX + radiusOfGyrationY * radiusOfGyrationY); Matrix3D ret = getRotationalInertiaFromDiagonal(ixx, iyy, izz); return ret; }
public static Matrix3d getRotationalInertiaMatrixOfSolidEllipsoid(double mass, double xRadius, double yRadius, double zRadius) { checkMassAndDimensions(mass, xRadius, yRadius, zRadius); double ixx = 1.0 / 5.0 * mass * (yRadius * yRadius + zRadius * zRadius); double iyy = 1.0 / 5.0 * mass * (zRadius * zRadius + xRadius * xRadius); double izz = 1.0 / 5.0 * mass * (xRadius * xRadius + yRadius * yRadius); Matrix3d ret = getRotationalInertiaFromDiagonal(ixx, iyy, izz); return ret; }
public static Matrix3D getRotationalInertiaMatrixOfSolidCylinder(double mass, double radius, double height, Axis axisOfCylinder) { double[] rotationalInertias = getIxxIyyIzzOfSolidCylinder(mass, radius, height, axisOfCylinder); Matrix3D rotationalMatrix = getRotationalInertiaFromDiagonal(rotationalInertias[0], rotationalInertias[1], rotationalInertias[2]); return rotationalMatrix; }
public static Matrix3d getRotationalInertiaFromRadiiOfGyration(double mass, double radiusOfGyrationX, double radiusOfGyrationY, double radiusOfGyrationZ) { checkMassAndDimensions(mass, radiusOfGyrationX, radiusOfGyrationY, radiusOfGyrationZ); double ixx = mass * (radiusOfGyrationY * radiusOfGyrationY + radiusOfGyrationZ * radiusOfGyrationZ); double iyy = mass * (radiusOfGyrationX * radiusOfGyrationX + radiusOfGyrationZ * radiusOfGyrationZ); double izz = mass * (radiusOfGyrationX * radiusOfGyrationX + radiusOfGyrationY * radiusOfGyrationY); Matrix3d ret = getRotationalInertiaFromDiagonal(ixx, iyy, izz); return ret; }
public static Matrix3d getRotationalInertiaMatrixOfSolidBox(double xLength, double yWidth, double zHeight, double mass) { checkMassAndDimensions(mass, xLength, yWidth, zHeight); double ixx = 1 / 12.0 * mass * (yWidth * yWidth + zHeight * zHeight); double iyy = 1 / 12.0 * mass * (xLength * xLength + zHeight * zHeight); double izz = 1 / 12.0 * mass * (xLength * xLength + yWidth * yWidth); Matrix3d ret = getRotationalInertiaFromDiagonal(ixx, iyy, izz); return ret; }
public static Matrix3d getRotationalInertiaMatrixOfSolidCylinder(double mass, double radius, double height, Axis axisOfCylinder) { double[] rotationalInertias = getIxxIyyIzzOfSolidCylinder(mass, radius, height, axisOfCylinder); Matrix3d rotationalMatrix = getRotationalInertiaFromDiagonal(rotationalInertias[0], rotationalInertias[1], rotationalInertias[2]); return rotationalMatrix; }
public static Matrix3D getRotationalInertiaMatrixOfSolidEllipsoid(double mass, double xRadius, double yRadius, double zRadius) { checkMassAndDimensions(mass, xRadius, yRadius, zRadius); double ixx = 1.0 / 5.0 * mass * (yRadius * yRadius + zRadius * zRadius); double iyy = 1.0 / 5.0 * mass * (zRadius * zRadius + xRadius * xRadius); double izz = 1.0 / 5.0 * mass * (xRadius * xRadius + yRadius * yRadius); Matrix3D ret = getRotationalInertiaFromDiagonal(ixx, iyy, izz); return ret; }
public static Matrix3D getRotationalInertiaMatrixOfSolidBox(double xLength, double yWidth, double zHeight, double mass) { checkMassAndDimensions(mass, xLength, yWidth, zHeight); double ixx = 1 / 12.0 * mass * (yWidth * yWidth + zHeight * zHeight); double iyy = 1 / 12.0 * mass * (xLength * xLength + zHeight * zHeight); double izz = 1 / 12.0 * mass * (xLength * xLength + yWidth * yWidth); Matrix3D ret = getRotationalInertiaFromDiagonal(ixx, iyy, izz); return ret; }