2016-08-07 2 views
0

Ich habe die Koordinaten von sagen wir 10 Punkten auf verschiedenen Zeitniveaus und ich möchte diese Koordinaten verbinden, damit es wie eine Flugbahn aussieht?Wie zeichne ich die Flugbahn von Punkten, deren Koordinaten mir zu verschiedenen Zeitpunkten bekannt sind?

def euler_method(points, x_dot, y_dot, x1, x2, time_step, n_steps): 
    n_points = len(points[:, 0]) 
    point_trajectory = np.zeros((n_points, 2, n_steps)) 
    for i in range(0, n_steps): 
     point_trajectory[:, :, i] = points 
     f1 = sp.lambdify((x1, x2), x_dot, "numpy") 
     f2 = sp.lambdify((x1, x2), y_dot, "numpy") 
     u = f1(points[:, [0]], points[:, [1]]) 
     v = f2(points[:, [0]], points[:, [1]])     
     points_new_x = points[:, [0]] + u*time_step 
     points_new_y = points[:, [1]] + v*time_step 
     points = np.hstack((points_new_x, points_new_y)) 
    return point_trajectory 

def plot_trajectory (points_at_diff_time)-Ist das, was ich

erstellen möchte ich nicht in der Lage bin zu denken, wie sie zu vertreten. Bitte schlagen Sie vor, wie es gemacht wird, vorzugsweise in Matplotlib.

EDIT: So etwas wie diese - Punkte mit unterschiedlichen Koordinaten zu verschiedenen Zeiten zu bewegen.

enter image description here

+0

nicht klar, was Sie fragen. Vielleicht können Sie ein Bild zeichnen und es in Ihre Frage einfügen. –

+0

ok lass mich dann setzen – Manish

+0

Haben Sie eine parametrische Form für die Flugbahn? Zum Beispiel, ist es die Flugbahn einer Kanonenkugel? –

Antwort

1
import numpy as np 
import matplotlib.pyplot as plt 

# make fake data to test with 
pt = np.zeros((6, 2, 3)) # 6 points, (x,y), 3 timesteps 
pt[:,0] = [-2,-1,1] # x=time, same for all 

# set y values 
pt[0,1] = [3,4,4.5] 
pt[1,1] = [2,2.9,3.4] 
pt[2,1] = [1,1.9,2.4] 
pt[3,1] = [0,0.6,1.0] 
pt[4,1] = [-1.5,-1.6,-1.6] 
pt[5,1] = [-2.8,-3.7,-3.8] 

# now plot: x and y are 2D 
x = pt[:,0].T 
y = pt[:,1].T 

plt.plot(x, y) 
plt.show() 

resulting plot

Wenn Sie möchten, um die Linien zu glätten, siehe hier: https://stackoverflow.com/a/5284038/4323

+0

Diese Methode war elegant und erfüllte wirklich den Zweck. Können Sie bitte die allgemeine Idee hinter diesem Ansatz erklären? Nimmt es immer jede Zeile unabhängig, wenn Sie eine Matrix auf eine Matrix auftragen? – Manish

Verwandte Themen