| Engine type | "); foreach( $_POST["time"] as $day ) { if (!is_numeric( $day ) ) { continue; } echo("$day day(s) | "); } foreach( $_POST["propel"] as $propel ) { $drive = $drives[$propel]; echo("
|---|---|
| " . $drive->name . " | "); foreach( $_POST["time"] as $day ) { if (!is_numeric( $day ) ) { continue; } $day = floatval( $day ); $v = $day * $secs_per_day * $drive->thrust * $g; // m/s $v = $v / 1000 * $secs_per_day; // km/day printf("%.0f km/day %.4f AU/day %.6f c | ", $v, $v / $AU, $v / 2.59020684e10 );
}
echo("
| Engine type | "); foreach( $_POST["time"] as $day ) { if (!is_numeric( $day ) ) { continue; } echo("$day day(s) | "); } foreach( $_POST["propel"] as $propel ) { $drive = $drives[$propel]; echo("
|---|---|
| " . $drive->name . " | "); foreach( $_POST["time"] as $day ) { if (!is_numeric( $day ) ) { continue; } $day = floatval( $day ); // d = 1/2 * a * t^2 if(isset($_POST["stopatend"])) { $d = ($drive->thrust * $g) * pow($day * $secs_per_day / 2, 2) / 1000; } else { $d = 0.5 * ($drive->thrust * $g) * pow($day * $secs_per_day, 2) / 1000; } printf("%.0f km %.4f AU %.2f lightseconds | ", $d, $d / $AU, $d / 299792.458 );
}
echo("
| Engine type | "); $burnratio = floatval($_POST['burnratio'] ) / 100; if($_POST["disttype"] == "arbitrary") { foreach( $_POST["dist"] as $dist) { if (!is_numeric( $dist) ) { continue; } echo("$dist AU | "); } echo("|
|---|---|---|
| " . $drive->name . " | "); foreach( $_POST["dist"] as $dist ) { if (!is_numeric( $dist ) ) { continue; } $dist = floatval( $dist ); if(isset($_POST["stopatend"])) { // d = 1/2 * h * (a+b) // h == t * r * a // a+b = t * (2 - r) // d = 1/2 (t * r * a / 2) (t * (2 - r)) // 2d / (ra / 2) / (2-r) = t^2 $t = sqrt(2 * $dist * $AU * 1000 / ($burnratio * $drive->thrust * $g / 2) / (2 - $burnratio)) / $secs_per_day; } else { // d = 1/2 r t (rta) + (1-r)t * (rta) // d = r a t^2 (1 - r/2) // t^2 = d / (r a (1 - r/2)) $t = sqrt($dist * $AU * 1000 / ($burnratio * $drive->thrust * $g * (1 - $burnratio/2))) / $secs_per_day; // d = 1/2 t * ta // t^2 = 2d / a //$t = sqrt(2 * $dist * $AU * 1000 / ($drive->thrust * $g)) / $secs_per_day; } printf("%.2f days | ", $t );
}
echo("%s -> %s (near) | ", $source->name, $dest->name ); printf("%s -> %s (far) | ", $source->name, $dest->name ); } } echo(""); foreach( $_POST["propel"] as $propel ) { $drive = $drives[$propel]; echo("
| " . $drive->name . " | "); foreach($_POST["from"] as $source) { $source = $distances[$source]; foreach($_POST["to"] as $dest ) { $dest = $distances[$dest]; $dist = abs( $source->dist - $dest->dist); if(isset($_POST["stopatend"])) { $t = sqrt(2 * $dist * $AU * 1000 / ($burnratio * $drive->thrust * $g / 2) / (2 - $burnratio)) / $secs_per_day; } else { $t = sqrt($dist * $AU * 1000 / ($burnratio * $drive->thrust * $g * (1 - $burnratio/2))) / $secs_per_day; } printf("%.2f days | ", $t );
$dist = abs( $source->dist + $dest->dist);
if(isset($_POST["stopatend"])) {
$t = sqrt(2 * $dist * $AU * 1000 / ($burnratio * $drive->thrust * $g / 2) / (2 - $burnratio)) / $secs_per_day;
} else {
$t = sqrt($dist * $AU * 1000 / ($burnratio * $drive->thrust * $g * (1 - $burnratio/2))) / $secs_per_day;
}
printf("%.2f days | ", $t );
}
}
echo("
Simple Speed | Simple Distance | Simple Time |
|
|
|
|