From fcd3220633b3fe01bd0bb419ccc2cfcd8d74233f Mon Sep 17 00:00:00 2001 From: kruland2607 Date: Mon, 10 Nov 2014 12:35:51 -0600 Subject: [PATCH] Compute the radius of the tube fin based on number of tubes. --- .../openrocket/rocketcomponent/TubeFinSet.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/core/src/net/sf/openrocket/rocketcomponent/TubeFinSet.java b/core/src/net/sf/openrocket/rocketcomponent/TubeFinSet.java index 84e1c2cd2..76c7969e2 100644 --- a/core/src/net/sf/openrocket/rocketcomponent/TubeFinSet.java +++ b/core/src/net/sf/openrocket/rocketcomponent/TubeFinSet.java @@ -76,8 +76,22 @@ public class TubeFinSet extends ExternalComponent { r = ((SymmetricComponent) c).getAftRadius(); } } - if (r < 0) + if (r < 0) { r = DEFAULT_RADIUS; + } else { + // for 5,6, and 8 fins, adjust the diameter to provide touching fins. + switch (fins) { + case 5: + r *= 1.43; // sin(36) / (1- sin(36), 36 = 360/5/2 + break; + case 7: + r *= 0.77; // sin(25.7) / (1- sin(25.7) + break; + case 8: + r *= 0.62; // sin(22.5) / (1- sin(22.5) + break; + } + } return r; } return outerRadius;