Вот код, который должен рассчитывать движение, но он создает линию вместо параболы, любая помощь приветствуется.
import math as m
import matplotlib.pyplot as plt
import numpy as np
class Projectile_motion:
def __init__(self, V_x, V_y, g, delta_time):
self.gravity = g
self.V_x = V_x
self.V_y = V_y
self.delta_time = delta_time
def velocity(self, angle):
self.angle = angle
self.V_x= m.ceil(self.V_x *m.cos(self.angle))
self.V_y = m.ceil((self.V_y * m.sin(self.angle))) - (self.gravity * self.delta_time)
def distance(self, x, y):
self.x = x
self.y = y
self.x = self.x + (self.V_x * self.delta_time)
self.y = self.y + (self.V_y * m.sin(self.angle)) + (0.5 * self.gravity * ((self.delta_time)**2))
return self.x, self.y
ww = np.linspace(0, 50, num=5)
for i in ww:
attempt1 = Projectile_motion(30, 30, 9.8, i)
attempt1.velocity(1.042)
ss=attempt1.distance(0, 0)
plt.plot(ss)
plt.show()
Вывод: