File: x25f.fm4

package info (click to toggle)
plplot 5.9.9-5
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 84,772 kB
  • sloc: ansic: 86,290; xml: 26,754; ada: 17,685; cpp: 15,530; php: 11,938; tcl: 11,125; ml: 6,825; perl: 6,736; f90: 6,709; python: 6,237; java: 6,215; sh: 2,042; makefile: 192; lisp: 75; fortran: 64; sed: 52
file content (122 lines) | stat: -rw-r--r-- 3,929 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
c     $Id: x25f.fm4 11507 2011-01-27 00:38:36Z airwin $
c     
c     Filling and clipping polygons.
c     
c     
c     --------------------------------------------------------------------------
c     main
c     
c     Test program for filling polygons and proper clipping
c     --------------------------------------------------------------------------

      program x25f

      implicit none

      include 'plplot_parameters.h'

      integer i,j,k
      integer npts
      real*8 xextreme(2,10)
      real*8 yextreme(2,10)
      real*8 x0(10)
      real*8 y0(10)

      data ( xextreme(1,i), xextreme(2,i), yextreme(1,i), yextreme(2,i),
     &     i=1,9) /
     &     -120.0,         120.0,        -120.0,         120.0,
     &     -120.0,         120.0,          20.0,         120.0,
     &     -120.0,         120.0,         -20.0,         120.0,
     &     -80.0,          80.0,         -20.0,         120.0,
     &     -220.0,        -120.0,        -120.0,         120.0,
     &     -20.0,          20.0,        -120.0,         120.0,
     &     -20.0,          20.0,         -20.0,          20.0,
     &     -80.0,          80.0,         -80.0,          80.0,
     &     20.0,         120.0,        -120.0,         120.0/

      npts = 0

c     Parse and process command line arguments

      call plparseopts(PL_PARSE_FULL)

c     Initialize plplot

      call plssub(3,3)
      call plinit()


      do k = 1,2
         do j = 1,4

            if ( j .eq. 1 ) then
c              Polygon 1: a diamond
               x0(1) =    0 ; y0(1) = -100
               x0(2) = -100 ; y0(2) =    0
               x0(3) =    0 ; y0(3) =  100
               x0(4) =  100 ; y0(4) =    0
               npts = 4
            endif
            if ( j .eq. 2 ) then
c              Polygon 1: a diamond - reverse direction
               x0(4) =    0 ; y0(4) = -100
               x0(3) = -100 ; y0(3) =    0
               x0(2) =    0 ; y0(2) =  100
               x0(1) =  100 ; y0(1) =    0
               npts = 4
            endif
            if ( j .eq. 3 ) then
c              Polygon 2: a square with punctures
               x0(1)  = -100 ; y0(1)  = -100
               x0(2)  = -100 ; y0(2)  =  -80
               x0(3)  =   80 ; y0(3)  =    0
               x0(4)  = -100 ; y0(4)  =   80
               x0(5)  = -100 ; y0(5)  =  100
               x0(6)  =  -80 ; y0(6)  =  100
               x0(7)  =    0 ; y0(7)  =   80
               x0(8)  =   80 ; y0(8)  =  100
               x0(9)  =  100 ; y0(9)  =  100
               x0(10) =  100 ; y0(10) = -100
               npts = 10
            endif
            if ( j .eq. 4 ) then
c              Polygon 2: a square with punctures - reversed direction 
               x0(10) = -100 ; y0(10) = -100
               x0(9)  = -100 ; y0(9)  =  -80
               x0(8)  =   80 ; y0(8)  =    0
               x0(7)  = -100 ; y0(7)  =   80
               x0(6)  = -100 ; y0(6)  =  100
               x0(5)  =  -80 ; y0(5)  =  100
               x0(4)  =    0 ; y0(4)  =   80
               x0(3)  =   80 ; y0(3)  =  100
               x0(2)  =  100 ; y0(2)  =  100
               x0(1)  =  100 ; y0(1)  = -100
               npts = 10
            endif

            do i = 1,9
               call pladv(0)
               call plvsta()
               call plwind(xextreme(1,i), xextreme(2,i),
     &              yextreme(1,i), yextreme(2,i))

               call plcol0(2)
               call plbox('bc', 1.0d0, 0, 'bcnv', 10.0d0, 0)
               call plcol0(1)
               call plpsty(0)
               if(k.eq.1) then
                  call plfill(npts,x0,y0)
               else
                  call plgradient(npts,x0,y0,45.d0)
               endif
               call plcol0(2)
               call pllsty(1)
               call plline(npts,x0,y0)
            enddo
	 enddo
      enddo

c     Don't forget to call plend() to finish off!

      call plend()
      end