c
c drawpoly
c
c	draw some polygons
c
	subroutine drawpoly

        include 'vogle.fi'
	
	integer YELLOW, GREEN, MAGENTA
	parameter (YELLOW = 3, GREEN = 2, MAGENTA = 5)
c
c	An array of points for a polygon
c
	real parray(3,4)

	data parray/ -8.0, -8.0, 0.0,
     +  	    -5.0, -8.0, 0.0,
     +  	    -5.0, -5.0, 0.0,
     +  	    -8.0, -5.0, 0.0 /

	call color(YELLOW)

c
c Draw a polygon using poly, parray is our array of
c points and 4 is the number of points in it.
c
	call poly(4, parray)

	call color(GREEN)

c
c Draw a 5 sided figure by using move, draw and closepoly.
c
	call makepoly()
		call move(0.0, 0.0, 0.0)
		call draw(3.0, 0.0, 0.0)
		call draw(3.0, 4.0, 0.0)
		call draw(-1.0, 5.0, 0.0)
		call draw(-2.0, 2.0, 0.0)
	call closepoly()

	call color(MAGENTA)

c
c draw a sector representing a 1/4 circle
c
	call sector(1.5, -7.0, 3.0, 0.0, 90.0)

	call getkey

	end

c
c Using polygons, hatching, and filling.
c
	program fpoly

        include 'vogle.fi'

	integer BLACK, YELLOW, GREEN, MAGENTA
	parameter (BLACK = 0)
	parameter (YELLOW = 3, GREEN = 2, MAGENTA = 5)
        character*50 device

	print*,'Enter output device:'
	read(*,'(a)')device

	call vinit(device)

c
c clear to black
c
	call color(BLACK)
	call clear

c
c world coordinates are now in the range -10 to 10
c in x, y, and z. Note that positive z is towards us.
c
	call ortho(-10.0, 10.0, -10.0, 10.0, 10.0, -10.0)

	call color(YELLOW)

c
c write out the string "Polygon from poly()" in the
c starting at (-8.0, -4.0) and scaled to be 4.0 units long,
c 0.5 units high.
c
	call boxtext(-8.0, -4.0, 4.0, 0.5, 'Polygon from poly()'//char(0))

	call color(GREEN)

c
c write out a scaled string starting at (0.0, 6.0)
c
	call boxtext(0.0, 6.0, 4.0, 0.5, 'Polygon from move()/ draw()'//char(0))

	call color(MAGENTA)

c
c write out a scaled string starting at (0.0, 6.0)
c
	call boxtext(3.5, -3.5, 1.9, 0.5, 'Sector'//char(0))

c
c draw some polygons
c
	call drawpoly

c
c turn on polygon hatching
c
	call polyhatch(.true.)
	call hatchang(45.0)
	call hatchpitch(0.3)

c
c  Rotate 20 degrees around x and 30 around y
c
	call rotate(20.0, ichar('x'))
	call rotate(30.0, ichar('y'))

c
c draw some polygons with hatching
c
	call drawpoly

c
c turn on polygon filling - this automatically turns off hatching
c
	call polyfill(.true.)

c
c  Do another set of rotations.
c
	call rotate(20.0, ichar('x'))
	call rotate(30.0, ichar('y'))

c
c draw some polygons with filling
c
	call drawpoly

	call vexit

	end
