2017-02-06 13 views
0

頂点の座標を知っているPython 2.7で放物線を描きたい。頂点座標を持つ放物線を描くpython

私はこれを実装しました。問題は、頂点が放物線上にないことです。実際には、放物線と別の点をプロットしています。誰でもエラーを指摘できますか?ありがとうございました。

def parabola(return_hist1,V): 
    #solve the equations and plot the parabola 

    # V[0] is the x-coordinate and V[1] is the y-coordinate 

    A=np.array([[2*V[0]],[4*V[1]]]) 
    B=np.array([[1],[-1]]) 
    sol=A*B 

    Y=range(int(V[1]),50) 
    X=[] 
    for e in Y: 
     X.append(sol[0]*e**2 + sol[1]*e) 

    plt.plot(X,Y) 
    plt.plot(V[0],V[1],'ro') 
    plt.show() 
    return 
+0

1点だけ放物線を描きたいですか?私は理解していないのではないかと思います。計算する未知数が3つあるので、放物線を追跡するには3点が必要です –

+0

ありがとう、マヌエル私はv [0] = -b /(2 * a)とv [1] = -b ** 2/4a(私はc = 0に設定している)を知っています。 directrixはy = V [1]に等しい。これらの情報を十分にプロットするのに十分ではありませんか? – Lucia

+0

'Y = range(int(V [1]) - 1,50)'を試したことがありますか? –

答えて

0

これは、あなたが探しているものをされて推測:

# create parabola 
X = np.linspace(-20,20,1000) # range of parabola: -20,20 in 1000 steps 
Y = X**2 # calculate square of each X value to create a parabola at 0/0 
# move lowest point of parabola to V 
X += V[0] 
Y += V[1] 
# plot ... 

スワップX/Yが90度回転します。

放物線は通常、式y = a(x-X)**2+YV=(X,Y)です。 Vを知るだけで、ストレッチファクタaを決定することはできません。 parabolaのユーザーが垂直または水平にしたいとは限りません。

関連する問題