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 123 124
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! !
! GLE - Graphics Layout Engine <http://www.gle-graphics.org/> !
! !
! Modified BSD License !
! !
! Copyright (C) 2009 GLE. !
! !
! Redistribution and use in source and binary forms, with or without !
! modification, are permitted provided that the following conditions !
! are met: !
! !
! 1. Redistributions of source code must retain the above copyright !
! notice, this list of conditions and the following disclaimer. !
! !
! 2. Redistributions in binary form must reproduce the above !
! copyright notice, this list of conditions and the following !
! disclaimer in the documentation and/or other materials provided with !
! the distribution. !
! !
! 3. The name of the author may not be used to endorse or promote !
! products derived from this software without specific prior written !
! permission. !
! !
! THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR !
! IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED !
! WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE !
! ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY !
! DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL !
! DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE !
! GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS !
! INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER !
! IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR !
! OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN !
! IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. !
! !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Subroutines to create polar plots (r = f(theta))
sub polar fct$ from to tstep color$ fill$ lwidth
default tstep 0.025
default color black
default fill clear
default lwidth 0.02
t = from
r = eval(fct$)
gsave
set color color$ lwidth lwidth
begin path stroke fill fill$
amove xg(r*cos(t)) yg(r*sin(t))
for t = from+tstep to to step tstep
r = eval(fct$)
aline xg(r*cos(t)) yg(r*sin(t))
next t
closepath
end path
grestore
end sub
sub polar_segment fct$ from to tstep color$ lwidth
default tstep 0.025
default color black
default lwidth 0.02
t = from
r = eval(fct$)
gsave
set color color$ lwidth lwidth
amove xg(r*cos(t)) yg(r*sin(t))
for t = from+tstep to to step tstep
r = eval(fct$)
aline xg(r*cos(t)) yg(r*sin(t))
next t
grestore
end sub
sub polar_data ds$ color$ fill$ lwidth type$
default color black
default fill clear
default lwidth 0.02
default type line
gsave
set color color$ lwidth lwidth
if type$="line" then
for i = 1 to ndata(ds$)
amove xg(0) yg(0)
local r = datayvalue(ds$,i)
local t = torad(dataxvalue(ds$,i))
aline xg(r*cos(t)) yg(r*sin(t))
next i
else
begin path stroke fill fill$
local r = datayvalue(ds$,1)
local t = torad(dataxvalue(ds$,1))
amove xg(r*cos(t)) yg(r*sin(t))
for i = 2 to ndata(ds$)
r = datayvalue(ds$,i)
t = torad(dataxvalue(ds$,i))
aline xg(r*cos(t)) yg(r*sin(t))
next i
closepath
end path
end if
grestore
end sub
sub polar_grid radius rings sectors color$
default radius 1.0
default rings 4
default sectors 8
default color gray10
gsave
set color color$
for ring = 1 to rings
amove xg(0) yg(0)
circle xg(radius/rings*ring)-xg(0)
next ring
for sector = 1 to sectors
local theta = 2*pi/sectors*(sector-1)
amove xg(0) yg(0)
aline xg(radius*cos(theta)) yg(radius*sin(theta))
next sector
grestore
end sub
|