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
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
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
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
+++ /dev/null
-<!--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
--- /dev/null
+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