Blame demo/armillary.dem

Packit 0986c0
#
Packit 0986c0
# Show placement of circles in 3D using
Packit 0986c0
# - sampling
Packit 0986c0
# - circle objects in axis coordinates
Packit 0986c0
# - circle objects and labels in polar (cylindrical) coordinates
Packit 0986c0
#
Packit 0986c0
save_encoding = GPVAL_ENCODING
Packit 0986c0
set encoding utf8
Packit 0986c0
Packit 0986c0
unset border
Packit 0986c0
unset key
Packit 0986c0
set angles degrees
Packit 0986c0
set view 64, 302, 1.62, 1.0
Packit 0986c0
set view azimuth 23.4
Packit 0986c0
set view  equal xyz
Packit 0986c0
set style data lines
Packit 0986c0
set xzeroaxis
Packit 0986c0
set yzeroaxis
Packit 0986c0
set zzeroaxis
Packit 0986c0
set xyplane at 0
Packit 0986c0
unset tics
Packit 0986c0
set xrange [ -1.1  : 1.1  ]
Packit 0986c0
set yrange [ -1.1  : 1.1  ]
Packit 0986c0
set zrange [ -1.1  : 1.1  ]
Packit 0986c0
#
Packit 0986c0
set title "Circles and polygons in 3D" font ",20"
Packit 0986c0
set arrow from 0,0,-1.2 to 0,0,1.2 lw 2 filled
Packit 0986c0
#
Packit 0986c0
# Place circles as objects using Cartesian axis coordinates
Packit 0986c0
#
Packit 0986c0
set object 21 circle at 0,0,0  radius 1.0 fs empty border lc "black" lw 3 front
Packit 0986c0
set object 22 circle at 0,0,1  radius 0.1 fs transparent solid 0.5 fc "slategray"
Packit 0986c0
set object 23 circle at 0,0,-1 radius 0.1 fs transparent solid 0.5 fc "slategray"
Packit 0986c0
Packit 0986c0
#
Packit 0986c0
# Pentagonal "base"
Packit 0986c0
#
Packit 0986c0
set obj 24 polygon from polar 0, 0.5, -1.2 to polar 72, 0.5, -1.2 to polar 144, 0.5, -1.2 to polar 216, 0.5, -1.2 to polar 288, 0.5, -1.2 to polar 0, 0.5, -1.2
Packit 0986c0
set obj 24 fillstyle solid border border lc "black" back fc "olive"
Packit 0986c0
Packit 0986c0
Packit 0986c0
#
Packit 0986c0
# Plot symbols for Zodiac constellations in polar (actually cylindrical) coordinates
Packit 0986c0
# Place a circle around the corresponding glyph
Packit 0986c0
# Note: Many fonts do not provide glyphs for these symbols
Packit 0986c0
#
Packit 0986c0
array Zodiac[13] = ["♐", "♑", "♒", "♓", "♈", "♉", "♊", "♋", "♌", "♍", "♎", "♏", "⛎"] 
Packit 0986c0
array Longitude[13] = [267., 300., 328., 352., 29., 53., 90., 118., 138., 174., 218., 241., 248.]
Packit 0986c0
do for [i=1:13] {
Packit 0986c0
    set label i Zodiac[i] at polar Longitude[i], 1.1, 0 center font ",15"
Packit 0986c0
    set obj i circle at polar Longitude[i], 1.1, 0 radius char 1.5
Packit 0986c0
    set obj i fs solid fc rgb hsv2rgb( Longitude[i]/360., 0.5, 1.0)
Packit 0986c0
}
Packit 0986c0
Packit 0986c0
#
Packit 0986c0
# plot sampled parametric circles
Packit 0986c0
#
Packit 0986c0
splot sample [u=0:360] '+' using (cos(u)):(0):(sin(u)) lw 2, \
Packit 0986c0
             [u=0:360] '+' using (cos(u)):(sin(u)):(0) lw 2, \
Packit 0986c0
             [u=0:360] '+' using (0):(cos(u)):(sin(u)) lw 2
Packit 0986c0
Packit 0986c0
pause -1 "Hit <cr> to continue"
Packit 0986c0
Packit 0986c0
set encoding save_encoding
Packit 0986c0
reset