2 Dimensional Plots of Trajectories
 
 
As in the 1D plot, we are studying the motion of trajectories in a constant gravitational field.  The 2D plot allows you to see all possible trajectories between 0 and 90 degrees at the same time.  The data used for these diagrams was produced by program m2 which is written in Fortran 90.  These diagrams were generated by the program Transform. 
 
Equations Visualized: 
  • y(t) = y(0) + vy(0)*t + .5*g*t2 
  • x(t) = x(0) + vx(0)*t 
"y" is vertical distance, "x" is horizontal distance, "t" is time, "g" is acceleration due to gravity, "vy(0)" = v*sin(angle) is initial vertical velocity, where "v" is initial speed, and "vx(0)"= v*cos(angle) is initial horizontal velocity
 
 
This diagram shows trajectories at consecutive angles from 0 to 90.  In this program, you can select or create your own color scheme to be used as a height bar.  The angle is measured in degrees, time in seconds (s), and height in meters (m).
 
 
This diagram shows an interpolated plot of trajectories at consecutive angles from 0 to 90.  Interpolation is a process by which the program fills in holes between raw data points, eliminating rough edges and creating a smooth graph.   This is overlayed with a contour plot to show the height at particular points designated by the black lines.
 
 
program m2 
      implicit none 
      integer :: i, j 
      integer, parameter :: times=24, angles=30 
      real :: g=-9.8, vyi=0, vxi=0, yi=0, xi=0, vi 
      character*40 :: prompt = 'enter vi' 
      real, dimension(times) :: y, t, x  
      real, dimension(times,angles) :: h 
      real, dimension(angles) :: theta 
      print *, prompt 
      read (*,*) vi 
      write (7,*) angles, times 
      write (7,*) 0,0 
      do j=1,angles 
         theta(j)=3*j 
      end do 
      write(7,*) theta 
      theta=theta*6.2831853/360. 
      do i=1,times 
         t(i)=i-1 
      end do 
      write(7,*) t 
      do j=1,angles 
         vxi=vi*cos(theta(j)) 
         vyi=vi*sin(theta(j)) 
            y=yi+vyi*t+.5*g*t**2 
            x=xi+vxi*t  
            h(:,j)=y 
         write (7,*) h(:,j) 
      end do 
      end program m2 

Back to Main Page