2

了解しました。オブジェクトの軌道をプロットするための基本的なスクリプトがあります。時間に対する物体の位置を解く基本的な運動方程式があります。プロット自体は、オブジェクトの軌道の3D表現です。

軸の制限が正常に設定されたので、軸の制限を超えるこの軌道の値が表示されないようにします。現在、軌道はxy平面の下にあり、3Dプロットの外側で下向きに続いています...これを防ぐ方法はありますか?

コード全体は次のとおりです。

import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt

mpl.rcParams['legend.fontsize'] = 10

fig = plt.figure()
ax = fig.gca(projection='3d')


### Define Variables ###
time = (10)     #Time to calculate the equations
t = np.linspace(0, time, 100)

g = (9.81)      #Gravity

vxo = (3)       #initial velocity in the x-direction
vyo = (1)       #initial velocity in the y-direction
vzo = (0)       #initial velocity in the z-direction

xo = (0)        #initial x-position
yo = (0)        #initial y-position
zo = (9)        #initial z-position


### Equations of Motion ###
x = (xo + (vxo * t))
y = (yo + (vyo * t))
z = (10 - (.5 * g * (t**2)))


ax.plot(x, y, z, label=('Trajectory of Soccer Ball ' + str(time)))
ax.legend()

### Set axis limits ###
ax.set_xlim3d(0,10)
ax.set_ylim3d(0,10)
ax.set_zlim3d(0,10)
plt.show()
4

1 に答える 1

0

オブジェクトが軸の限界を超えている場合。それは、方程式がそうするように指示しているからです。結果をプロットする前に、結果とフィルターを制約する必要があります。何かのようなもの:

x = equation1()
if( x > someLimit )
  handle error / object bounces by inverting the direction perhaps
plot(x)
于 2012-10-16T21:55:07.567 に答える