File: rgb_variable.dem

package info (click to toggle)
gnuplot 5.0.5%2Bdfsg1-6%2Bdeb9u1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 12,800 kB
  • ctags: 8,062
  • sloc: ansic: 78,152; cpp: 6,981; makefile: 2,075; sh: 1,343; lisp: 655; perl: 302; awk: 235; pascal: 194; tcl: 88; python: 46
file content (125 lines) | stat: -rw-r--r-- 3,526 bytes parent folder | download | duplicates (5)
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
125
#
# Demo of reading color information from the data file itself
#

#
rgb(r,g,b) = int(r)*65536 + int(g)*256 + int(b)

#
set border 0
unset xtics; unset ytics; unset ztics
set rmargin 5; set lmargin 5; set bmargin 2

set angle degrees
xrgb(r,g,b) = (g-b)/255. * cos(30.)  
yrgb(r,g,b) = r/255. - (g+b)/255. * sin(30.)
set arrow 1 from 0,0 to 0,1 nohead lw 3 lc rgb "red" back
set arrow 2 from 0,0 to cos(-30), sin(-30) nohead lw 3 lc rgb "green" back
set arrow 3 from 0,0 to cos(210), sin(210) nohead lw 3 lc rgb "blue" back

set title "RGB color information read from data file"
plot 'rgb_variable.dat' using (xrgb($1,$2,$3)):(yrgb($1,$2,$3)):(rgb($1,$2,$3)) \
     with points pt 7 ps 4 lc rgb variable notitle
pause -1 "Hit return to continue"

#
set title "Both RGB color information\n and point size controlled by input"
plot 'rgb_variable.dat' using (xrgb($1,$2,$3)):(yrgb($1,$2,$3)):(1.+2.*rand(0)):(rgb($1,$2,$3)) \
     with points pt 7 ps var lc rgb variable notitle
pause -1 "Hit return to continue"

#
set border -1 front linetype -1 linewidth 1.000
set ticslevel 0
set xtics border
set ytics border
set ztics border
#
unset arrow 1
unset arrow 2
unset arrow 3
#
set xlabel "Red" tc rgb "red"
set xrange [0:255]
set ylabel "Green" tc rgb "green"
set yrange [0:255]
set zlabel "Blue" tc rgb "blue"
set zrange [0:255]

#
splot 'rgb_variable.dat' using 1:2:3:(rgb($1,$2,$3)) with points pt 7 ps 4 lc rgb variable, \
      '' using 1:2:3:(sprintf("0x%x",rgb($1,$2,$3))) with labels left offset 1 notitle
pause -1 "Hit return to continue"
#
#
# Unfortunately, not all platforms allow us to read hexadecimal constants
# from a data file. Warn the user if that is the case.
#
if (0 == int('0x01')) \
   set label 99 at screen .05, screen .15 "If you see only black dots,\nthis means your platform does not \nsupport reading hexadecimal constants\nfrom a data file. Get a newer libc."

splot 'rgb_variable.dat' using 1:2:3:(5*rand(0)):4 with points pt 7 ps variable lc rgb variable \
      title "variable pointsize and rgb color read as hexidecimal"

pause -1 "Hit return to continue"
set label 99 ""
#
set border 0
set xtics axis nomirror
set ytics axis nomirror
set ztics axis nomirror
set xzeroaxis lt -1 lc rgb "red" lw 2
set yzeroaxis lt -1 lc rgb "green" lw 2
set zzeroaxis lt -1 lc rgb "blue" lw 2
set xyplane at 0.0

splot 'rgb_variable.dat' using 1:2:3:(5*rand(0)):(rgb($1,$2,$3)) with points pt 7 ps variable lc rgb variable \
      title "variable pointsize and rgb color computed from coords"
pause -1 "Hit return to continue"

set title "Demo of hidden3d with points only (no surface)"
set hidden3d
replot
pause -1 "Hit return to continue"
reset
#

RGB(R,G,B) =  int(255.*R) * 2**16 + int(255.*G) * 2**8  + int(255.*B)

set xr [0.01:1]
set yr [0.01:1]
set zr [0:1]
set xtics ("R=1" 1)
set ytics ("G=1" 1)
set ztics ("0" 0, "B=1" 1)
unset colorbox
set isosamples 40,40
set xyplane at 0.0
set view 63,58,1.,1.4

set title "RGB coloring of pm3d surface"
unset key

# Just some function that is well-defined in this range
# (except at the origin)
f(x,y) = 0.4 + sin(sqrt(100.*x**2+100.*y**2)) \
       / (1.5*sqrt(100.*x**2+100.*y**2))

splot '++' using 1:2:(f($1,$2)):(RGB($1,$2,f($1,$2))) \
       with pm3d lc rgb variable

pause -1 "Hit return to continue"

set title "HSV coloring of pm3d surface\n(V=1)"
unset xtics
unset ytics
set ztics ("0" 0)
set xlabel "H"
set ylabel "S"

splot '++' using 1:2:(f($1,$2)):(hsv2rgb($1,$2,1.0)) \
       with pm3d lc rgb variable

pause -1 "Hit return to continue"

reset