/usr/share/doc/libplplot11/examples/f77/x25f.f is in libplplot-dev 5.9.9-2ubuntu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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
|