Ich habe einen Java-Code für die Berechnung einiger verschiedener Beschleunigungs- und usw. Typdaten geschrieben. Ich versuche jetzt, diese Daten grafisch darzustellen, damit ich bestimmte Daten über eine Zeitachse ziehen kann. Die Werte, die ich über mein Mathematikprogramm erhalten habe, sind mit mehreren verschiedenen Mitteln zur Fehlerprüfung rein genau. Ich benötige keine Hilfestellung für die Java-Programmierung. Was ich brauche, ist eine genaue Grafiktechnik, damit ich die entsprechenden Daten erhalten kann.
Beschleunigungsformel
Die x-Achse ist dabei die Zeitvariable. Die y-Achse sollte die Entfernung sein, aber ich bekomme völlig falsche Zahlen. Ich weiß, dass ich vielleicht mit meinem Verständnis davon, wie es grafisch aussehen würde, daneben liegen könnte.
double D = Double.parseDouble(txtDistance.getText());
double T = Double.parseDouble(txtTime.getText());
double IV = Double.parseDouble(txtIVelocity.getText());
double M = Double.parseDouble(txtMass.getText());
double hd = Distance(D);
double ht = Time(T);
//2.0*(xt/th-v_i)/th
//double A = (2 * (hd - ht * IV)) / (ht * ht);
double A = 2 * (hd/ht - IV)/ht;
double PG = (A / 9.8) * 100;
//IV + A * ht
//double V = hd / ht;
double V = IV + A * ht;
double PL = (V / 299792458) * 100;
double MPH = V * 2.236936;
double F = M * A;
double LBT = F * 0.224809;
DecimalFormat df = new DecimalFormat("####0.0000");
txtVelocity.setText(String.valueOf(df.format(V)));
txtPLight.setText(String.valueOf(df.format(PL)));
txtMph.setText(String.valueOf(df.format(MPH)));
txtAcceleration.setText(String.valueOf(df.format(A)));
txtPGForce.setText(String.valueOf(df.format(PG)));
txtThrust.setText(String.valueOf(df.format(F)));
txtLBThrust.setText(String.valueOf(df.format(LBT)));
Wie Sie daran sehen können, gebe ich Entfernung, Zeit, Anfangsgeschwindigkeit und Masse ein. Und im Gegenzug berechnet und zeigt es die Endgeschwindigkeit, die prozentuale Lichtgeschwindigkeit, die Meilen pro Stunde, die Beschleunigung, die prozentuale G-Kraft, das Vertrauen in Newton und den Schub in Pfund an.
Beispieldaten:
Entfernung: 160934400 km (etwas mehr als eine AE) Zeit: 40 Stunden Anfangsgeschwindigkeit: 3070 m/s (geosynchrone Erdumlaufbahn) Masse: 54431 kg
Das Fahrzeug startet in der Erdumlaufbahn und beschleunigt über 50 % der Entfernung und bremst über 50 % der Entfernung ab. Dies wird mit 72000 Sekunden und 80467200000 Metern angegeben.
Beispielantwort:
Endgeschwindigkeit: 1117600,0000 m/s Prozent Licht: 0,3728 % Meilen pro Stunde: 2499999,6736 mph (für das menschliche Verständnis der Geschwindigkeit für den Leser) Beschleunigung: 30,9592 m/s^2 Prozent G-Kraft: 315,9099 % Schub: 315,9099 N Lbs Schub: 378834,2788 Lbs (wieder zum menschlichen Verständnis)
Ich weiß, dass diese Zahlen so genau sind, wie sie die oben angegebenen konstanten Beschleunigungsgleichungen verwenden können. Ich weiß, dass diese Zahlen extrem sind, aber es ist ein Science-Fiction-Roman.
Der Zweck von all dem ist, dass ich einen Science-Fiction-Roman schreibe und eine Handlung und einen Zeitplan habe. Ich brauche verschiedene Geschwindigkeiten, basierend auf Zeit und Beschleunigung usw. Ich habe ein zusätzliches Programm, das diese Daten aufnimmt und grafisch darstellt, sodass ich auf Punkte klicken kann, um die entsprechenden Daten zu erhalten, die ich zu einem bestimmten Zeitpunkt in der Geschichte benötige.
Was ist das geeignete Mittel, um das grafisch darzustellen, damit ich genaue Zahlen bekomme, die für meine Geschichte Sinn machen, wenn Sie, potenzieller Leser, das Buch lesen?
Abgesehen von noch genaueren Zahlen muss ich wissen, wie ich meine Gleichungen modifizieren kann, um Gravitationsstörungen bei der Beschleunigung usw. zu berücksichtigen.
Ich habe die letzte Woche bis zu 80 Stunden damit verbracht, daran zu arbeiten, damit mein Buch so genau wie möglich sein kann. Vor diesem Hintergrund wäre es für mich nahezu unmöglich, alle meine Arbeiten zu diesem Thema einzubeziehen. Jede Unterstützung, die Sie anbieten möchten, damit ich mit diesem Roman vorankommen kann, wäre sehr dankbar.
Ich bin mit der grafischen Darstellung in Python besser vertraut als mit der Sprache, die Sie verwenden. Das folgende Code-Snippet erzeugt das gewünschte Diagramm:
import numpy as np
import matplotlib.pyplot as plt
# sci fi velocity graph
D = 160934400000 # m
v_i = 3070 # m/s
total_time = 40*3600 # seconds: 40 hours
# to cover half the distance in half the time, we solve
# x(t) = x(0) + v_0*t + 0.5*a*t*t
# x(0) = 0
# x(t) = D/2
# t = total_time / 2 = th
th = total_time / 2
xt=D/2
a = 2.0*(xt/th-v_i)/th
print 'acceleration needed is %.2f m/s^2'%a
# this prints out 30.96 m/s^2 - encouraging
# calculate position during acceleration phase - every second:
tm = 20*3600 # time at mid point
x=[]
for t in range(0,tm+1):
x.append(v_i*t + 0.5 * a * t * t)
xm = x[-1] # position at mid point
for t in range(tm+1, 2*tm):
x.append((v_i + tm*a)*(t-tm) - 0.5 * a * (t - tm) * (t - tm) + xm)
time = np.arange(0,2*tm)/3600.0
plt.close('all')
plt.figure()
plt.plot(time, np.array(x)/1000)
plt.xlabel('time (hr)')
plt.ylabel('position (km)')
plt.show()
v_t = np.diff(x)
plt.figure()
plt.plot(np.array(x[:-1])/1000,v_t/1000)
plt.xlabel('position (km)')
plt.ylabel('velocity (km/s)')
plt.show()
plt.figure()
plt.plot(time[:-1], v_t/1000)
plt.xlabel('time (hr)')
plt.ylabel('velocity (km/s)')
plt.show()
Daraus ergibt sich folgendes Diagramm:
Sie können die Geschwindigkeit auch als Funktion der Zeit darstellen:
Oder als Funktion der Position:
Kyle Kanos
RedGrittyBrick
Texasman1979
Texasman1979
Texasman1979
Texasman1979