From b93926ec4b40e843ee5fb9a5e1c2faf813d57280 Mon Sep 17 00:00:00 2001 From: kruland2607 Date: Wed, 12 Nov 2014 09:12:56 -0600 Subject: [PATCH] Fixed computation of Logitudinal Unit Inertia for tube like things. --- .../openrocket/rocketcomponent/BodyTube.java | 4 +- .../openrocket/rocketcomponent/LaunchLug.java | 38 +++++++++---------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/core/src/net/sf/openrocket/rocketcomponent/BodyTube.java b/core/src/net/sf/openrocket/rocketcomponent/BodyTube.java index 865835533..f9ae720ca 100644 --- a/core/src/net/sf/openrocket/rocketcomponent/BodyTube.java +++ b/core/src/net/sf/openrocket/rocketcomponent/BodyTube.java @@ -281,8 +281,8 @@ public class BodyTube extends SymmetricComponent implements MotorMount, Coaxial @Override public double getLongitudinalUnitInertia() { - // 1/12 * (3 * (r1^2 + r2^2) + h^2) - return (3 * (MathUtil.pow2(getInnerRadius())) + MathUtil.pow2(getOuterRadius()) + MathUtil.pow2(getLength())) / 12; + // 1/12 * (3 * (r2^2 + r1^2) + h^2) + return (3 * (MathUtil.pow2(getOuterRadius()) + MathUtil.pow2(getInnerRadius())) + MathUtil.pow2(getLength())) / 12; } @Override diff --git a/core/src/net/sf/openrocket/rocketcomponent/LaunchLug.java b/core/src/net/sf/openrocket/rocketcomponent/LaunchLug.java index 437094368..414c561e1 100644 --- a/core/src/net/sf/openrocket/rocketcomponent/LaunchLug.java +++ b/core/src/net/sf/openrocket/rocketcomponent/LaunchLug.java @@ -86,7 +86,7 @@ public class LaunchLug extends ExternalComponent implements Coaxial { } - + public void setLength(double length) { if (MathUtil.equals(this.length, length)) return; @@ -95,9 +95,9 @@ public class LaunchLug extends ExternalComponent implements Coaxial { } - - - + + + @Override public void setRelativePosition(RocketComponent.Position position) { super.setRelativePosition(position); @@ -112,30 +112,30 @@ public class LaunchLug extends ExternalComponent implements Coaxial { } - + @Override protected void loadFromPreset(ComponentPreset preset) { - if ( preset.has(ComponentPreset.OUTER_DIAMETER) ) { + if (preset.has(ComponentPreset.OUTER_DIAMETER)) { double outerDiameter = preset.get(ComponentPreset.OUTER_DIAMETER); - this.radius = outerDiameter/2.0; - if ( preset.has(ComponentPreset.INNER_DIAMETER) ) { + this.radius = outerDiameter / 2.0; + if (preset.has(ComponentPreset.INNER_DIAMETER)) { double innerDiameter = preset.get(ComponentPreset.INNER_DIAMETER); - this.thickness = (outerDiameter-innerDiameter) / 2.0; + this.thickness = (outerDiameter - innerDiameter) / 2.0; } } - + super.loadFromPreset(preset); - + fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE); } - - + + @Override public Type getPresetType() { return ComponentPreset.Type.LAUNCH_LUG; } - - + + @Override public Coordinate[] shiftCoordinates(Coordinate[] array) { array = super.shiftCoordinates(array); @@ -183,8 +183,8 @@ public class LaunchLug extends ExternalComponent implements Coaxial { } - - + + @Override public double getComponentVolume() { return length * Math.PI * (MathUtil.pow2(radius) - MathUtil.pow2(radius - thickness)); @@ -211,8 +211,8 @@ public class LaunchLug extends ExternalComponent implements Coaxial { @Override public double getLongitudinalUnitInertia() { - // 1/12 * (3 * (r1^2 + r2^2) + h^2) - return (3 * (MathUtil.pow2(getInnerRadius())) + MathUtil.pow2(getOuterRadius()) + MathUtil.pow2(getLength())) / 12; + // 1/12 * (3 * (r2^2 + r1^2) + h^2) + return (3 * (MathUtil.pow2(getOuterRadius()) + MathUtil.pow2(getInnerRadius())) + MathUtil.pow2(getLength())) / 12; } @Override