Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @interact
- def projectile(longitude=0 , latitude=0 , north_south=0 , west_east=0 , velocity=100):
- earth_r = 6371
- altitude = 100
- globe_color = "blue"
- coord_step = 30
- coord_color = "red"
- coord_weight = 8
- map = implicit_plot3d( x^2+y^2+z^2=earth_r^2 , (x,-(r+altitude),r+altitude) , (y,-(r+altitude),r+altitude) , (z,-(r+altitude),r+altitude) , opacity=.3 , color=globe_color )
- for i in srange( 0 , pi , coord_step*pi/180 ) :
- map += parametric_plot3d( ( earth_r*sin(t)*cos(i) , earth_r*sin(t)*cos(i) , earth_r*sin(t)*sin(i) ), (t,0,2*pi) , size=coord_weight , color=coord_color )
- for i in srange( -pi/2 , pi/2+.00001 , coord_step*pi/180 ) :
- map += parametric_plot3d( ( earth_r*cos(t)*cos(i) , earth_r*sin(t)*cos(i) , earth_r*sin(i) ) , (t,0,2*pi) , size=coord_weight , color=coord_color )
- p0 = ( earth_r*cos(longitude*pi/180)*cos(latitude*pi/180) , earth_r*sin(longitude*pi/180)*cos(latitude*pi/180) , earth_r*sin(latitude*pi/180) )
- position_arrow = arrow( (0,0,0) , p0 )
- d0 = vector([ cos((longitude+west_east)*pi/180)*cos((latitude+north_south)*pi/180) , sin((longitude+west_east)*pi/180)*cos((latitude+north_south)*pi/180) , sin((latitude+north_south)*pi/180) ])
- velocity_arrow = arrow( p0 , p0+d0*velocity )
- show(map)
Add Comment
Please, Sign In to add comment