'Is there a way i can use np.array in the code

I wanted to know if there is a way i can covert this code into a np.array code. then add it to link. I wanted to add an angle where the ball launches from.

import numpy as np
import scipy as sp
from scipy.integrate import ode
import matplotlib.pylab as pl
import matplotlib.pyplot as plt
import math
from matplotlib import*
from matplotlib.pyplot import *
from __future__ import division
import math

 def projectile_xy(initPos,g,initVel):
    data_xy = []
    initTime = 0.0
    while True:

now calculate the height y

        y = initPos + (initTime * initVel * math.sin(theta)) - (g * initTime * initTime)/2

projectile has hit ground level

        if y < 0:
            break

calculate the distance x

        x = initVel * math.cos(theta) * initTime

append the (x, y) tuple to the list

        data_xy.append((x, y))

use the time in increments of 0.1 seconds

        initTime += 0.1
    return data_xy

g = 9.8
#h = float(raw_input("Enter the height "))
initPos = float(raw_input("Enter the height "))
der = float(raw_input("Enter the angle "))
#v = float(raw_input("Enter velocity ")) 
initVel = float(raw_input("Enter velocity ")) 


theta = math.radians(der)  # radians
data_der = projectile_xy(initPos,g,initVel)

find maximum height ...

point_height_max = max(data_der, key = lambda q: q[1])
xm, ym = point_height_max
x_max = max(data_der)[0]

print('''
Projectile Motion ...
Using a firing angle of {} degrees
and a muzzle velocity of {} meters/second
the maximum height is {:0.1f} meters
at a distance of {:0.1f} meters'''.format(der, initVel, ym, xm))
print "maximum distance" ,(x_max)

Enter the height 1 Enter the angle 45 Enter velocity 30

Projectile Motion ...
Using a firing angle of 45.0 degrees
and a muzzle velocity of 30.0 meters/second
the maximum height is 24.0 meters
at a distance of 46.7 meters
maximum distance 91.2167747731


Solution 1:[1]

You can follow this approach:

import numpy as np

linear_vel = 20
ang = np.pi/3
y=10
x=12
g=9.8
y_vel =  linear_vel*np.cos(ang)
x_vel =  linear_vel*np.sin(ang)


t = (y_vel+np.sqrt(y_vel**2+2*g*y))/g   #time when projectile hits               ground
n= 20 #number of instances of time you want

time_values = np.linspace(0,int(t),n)
axes = np.zeros((2,n))

for i in range(0,n):
    axes[0,i]=x_vel*time_values[i]
    axes[1,i]=y_vel*time_values[i]-0.5*g*time_values[i]**2



#print time_values
#print axes

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 HelloWorld.c