3D симуляция хода теннисного мяча - PullRequest
0 голосов
/ 25 мая 2019

Я хочу смоделировать положение теннисного мяча на 3D-графике. Он хочет, чтобы он был линией, равной положению теннисного мяча на теннисном корте после его удара. Проблема в том, что мой код изображает синюю фигуру, вместо этого идет линия, как показано в ссылке ниже. Что я делаю, чтобы сделать его синей линией?

Кроме того, я получаю сообщение об ошибке:

TypeError: plot () отсутствует 3 обязательных позиционных аргумента: 'self', 'xs' и 'ys'

Я не знаю, как это влияет на результат моего кода, хотя

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

x=np.array([0,3,5,7,9,11,13,15,17,19,21,23])
y=np.array([0,0.1,0.2,0.3,0.4,0.6,0.9,1,1.2,1.4,1.7,1.9])
z=np.array([1,1.2,1.5,1.7,1.8,1.9,2,1.9,1.8,1.7,1.5,1.2])

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

ax.plot_trisurf(x,y,z,)
plt.show()
Axes3D.plot()

Я ожидаю, что результатом будет синяя линия вместо синей цифры, как вы видите на рисунке ниже

enter image description here

1 Ответ

0 голосов
/ 25 мая 2019

Вы можете использовать ax.plot(x,y,z,) или plot3D(x,y,z,) следующим образом. Синяя поверхность происходит от plot_trisurf

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

x=np.array([0,3,5,7,9,11,13,15,17,19,21,23])
y=np.array([0,0.1,0.2,0.3,0.4,0.6,0.9,1,1.2,1.4,1.7,1.9])
z=np.array([1,1.2,1.5,1.7,1.8,1.9,2,1.9,1.8,1.7,1.5,1.2])

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

ax.plot3D(x,y,z,) # or ax.plot(x,y,z,)
plt.show()

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...