Improved HTML Exporter
authorBill Kuker <bkuker@billkuker.com>
Mon, 29 Nov 2010 02:41:07 +0000 (02:41 +0000)
committerBill Kuker <bkuker@billkuker.com>
Mon, 29 Nov 2010 02:41:07 +0000 (02:41 +0000)
src/com/billkuker/rocketry/motorsim/io/HTMLExporter.java
test.html [deleted file]
test/com/billkuker/rocketry/motorsim/test/HTMLExport.java [new file with mode: 0644]

index 9450ce5951f33ded5159b918b577934be5e3b89d..9e5bccde170b956bb1d322b2637af64ed64083f6 100644 (file)
@@ -23,6 +23,8 @@ import com.billkuker.rocketry.motorsim.GraphSimplifier;
 import com.billkuker.rocketry.motorsim.RocketScience;\r
 \r
 public class HTMLExporter {\r
+       static final int WIDTH=400;\r
+       static final int HEIGHT=200;\r
 \r
        @SuppressWarnings("deprecation")\r
        private static String encode(String s) {\r
@@ -87,7 +89,7 @@ public class HTMLExporter {
                sb.append("<img src='");\r
                sb.append("http://chart.apis.google.com/chart?chxt=x,x,y,y"\r
                                + (y2 ? ",r,r" : "") + (x2 ? ",t,t" : "")\r
-                               + "&chs=640x240&cht=lxy&chco=3072F3");\r
+                               + "&chs="+WIDTH+"x"+HEIGHT+"&cht=lxy&chco=3072F3");\r
                sb.append("&chds=" + nf.format(xMin) + "," + nf.format(xMax) + ","\r
                                + nf.format(yMin) + "," + nf.format(yMax));\r
                sb.append("&chxr=" + "0," + nf.format(xMin) + "," + nf.format(xMax)\r
@@ -108,8 +110,9 @@ public class HTMLExporter {
                        sb.append("|5,50");\r
                if (x2)\r
                        sb.append("|7,50");\r
-               sb.append("&chtt=" + title);\r
-               sb.append("' width='640' height='240' alt='" + title + "' />");\r
+               if ( title != null )\r
+                       sb.append("&chtt=" + title);\r
+               sb.append("' width='"+WIDTH+"' height='"+HEIGHT+"' alt='" + title + "' />");\r
 \r
                return sb.toString();\r
        }\r
@@ -120,53 +123,74 @@ public class HTMLExporter {
                BurnSummary bs = new BurnSummary(b);\r
                \r
                out.println("<!--Begin motor " + b.getMotor().getName() + " HTML export from MotorSim-->");\r
-               out.print("<table class='motor'>");\r
+               out.print("<table class='motor' style='text-align: left; border: 1px solid black'>");\r
 \r
                out.print("<tr>");\r
                out.print("<th colspan='6' class='title'>" + b.getMotor().getName() + "</th>");\r
                out.print("</tr>");\r
 \r
                out.print("<tr class='summary'>");\r
+\r
                out.print("<th>Rating:</th>");\r
-               \r
                out.print("<td>" + bs.getRating() + "</td>");\r
+               \r
+               \r
+               out.print("<th>Max Pressure:</th>");\r
+               out.print("<td>"\r
+                               + RocketScience.ammountToRoundedString(bs.maxPressure())\r
+                               + "</td>");\r
+\r
+               out.print("</tr>");\r
+               \r
+               \r
+               out.print("<tr class='summary'>");\r
+               \r
                out.print("<th>Total Impulse:</th>");\r
-       \r
                out.print("<td>"\r
                                + RocketScience.ammountToRoundedString(bs.totalImpulse())\r
                                + "</td>");\r
+               \r
+               \r
                out.print("<th>Specific Impulse:</th>");\r
                out.print("<td>"\r
                                + RocketScience.ammountToRoundedString(bs.specificImpulse())\r
                                + "</td>");\r
                out.print("</tr>");\r
                \r
-               \r
                out.print("<tr class='summary'>");\r
-               out.print("<th>Max Thrust:</th>");\r
-               \r
                \r
+               out.print("<th>Max Thrust:</th>");\r
                out.print("<td>"\r
                                + RocketScience.ammountToRoundedString(bs.maxThrust())\r
                                + "</td>");\r
+               \r
+               out.print("<th>Volume Loading:</th>");\r
+               out.print("<td>"\r
+                               + (int)(bs.getVolumeLoading()*100)\r
+                               + "%</td>");\r
+               out.print("</tr>");\r
+               \r
+               out.print("<tr class='summary'>");\r
+               \r
                out.print("<th>Average Thrust:</th>");\r
-       \r
                out.print("<td>"\r
                                + RocketScience.ammountToRoundedString(bs.averageThrust())\r
                                + "</td>");\r
-               out.print("<th>Max Pressure:</th>");\r
+               out.print("<th>Fuel Mass:</th>");\r
                out.print("<td>"\r
-                               + RocketScience.ammountToRoundedString(bs.maxPressure())\r
+                               + RocketScience.ammountToRoundedString(bs.getPropellantMass())\r
                                + "</td>");\r
+\r
                out.print("</tr>");\r
+               \r
 \r
                out.print("<tr>");\r
-               out.print("<td colspan='6' class='thrust'>");\r
+               out.print("<td colspan='4' class='thrust'>");\r
                GraphSimplifier<Duration, Force> thrust = new GraphSimplifier<Duration, Force>(\r
                                b, "thrust", b.getData().keySet().iterator());\r
 \r
                out.print(toChart(SI.SECOND, SI.NEWTON, thrust, "value", thrust\r
-                               .getDomain().iterator(), "Thrust"));\r
+                               .getDomain().iterator(), null));\r
                out.print("</td>");\r
                /*\r
                out.print("<td colspan='3' class='pressure'>");\r
diff --git a/test.html b/test.html
deleted file mode 100644 (file)
index af91040..0000000
--- a/test.html
+++ /dev/null
@@ -1,3 +0,0 @@
-<!--Begin motor PVC9 HTML export from MotorSim-->\r
-<table class='motor'><tr><th colspan='6' class='title'>PVC9</th></tr><tr class='summary'><th>Rating:</th><td>58% G-157</td><th>Total Impulse:</th><td>120 Ns</td><th>Specific Impulse:</th><td>126 s</td></tr><tr class='summary'><th>Max Thrust:</th><td>219 N</td><th>Average Thrust:</th><td>157 N</td><th>Max Pressure:</th><td>3.3 MPa</td></tr><tr><td colspan='6' class='thrust'><img src='http://chart.apis.google.com/chart?chxt=x,x,y,y,r,r&chs=640x240&cht=lxy&chco=3072F3&chds=0,0.86,0,219.04&chxr=0,0,0.86|2,0,219.04|4,0,49.24&chd=t:0,0,0.02,0.06,0.1,0.16,0.25,0.36,0.53,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.71,0.71,0.71,0.76,0.85,0.86|0,55.46,108.17,115.05,124.61,137.84,155.59,178,202.54,219.04,199.1,180.29,162.61,146.03,130.54,116.12,102.76,90.42,79.08,68.72,0.05,0,0&chxl=1:|s|3:|N|5:|lbf&chxp=1,50|3,50|5,50&chtt=Thrust' width='640' height='240' alt='Thrust' /></td></tr></table>
-<!--End motor PVC9-->\r
diff --git a/test/com/billkuker/rocketry/motorsim/test/HTMLExport.java b/test/com/billkuker/rocketry/motorsim/test/HTMLExport.java
new file mode 100644 (file)
index 0000000..af537c2
--- /dev/null
@@ -0,0 +1,23 @@
+package com.billkuker.rocketry.motorsim.test;\r
+\r
+import java.io.File;\r
+import java.io.FileOutputStream;\r
+\r
+import com.billkuker.rocketry.motorsim.Burn;\r
+import com.billkuker.rocketry.motorsim.Motor;\r
+import com.billkuker.rocketry.motorsim.io.HTMLExporter;\r
+import com.billkuker.rocketry.motorsim.motors.kuker.PVC9;\r
+\r
+public class HTMLExport {\r
+       public static void main(String args[]) throws Exception {\r
+\r
+               Motor m = new PVC9();\r
+               Burn b = new Burn(m);\r
+               b.burn();\r
+               \r
+               File f = new File("test.html");\r
+               HTMLExporter.export(b, System.out);\r
+               HTMLExporter.export(b, new FileOutputStream(f));\r
+\r
+       }\r
+}\r