File: rgb_variable.dem

package info (click to toggle)
gnuplot 5.4.1%2Bdfsg1-1%2Bdeb11u1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 13,316 kB
  • sloc: ansic: 85,877; cpp: 7,440; makefile: 2,548; javascript: 2,322; sh: 1,542; lisp: 667; perl: 304; pascal: 191; tcl: 88; python: 46
file content (135 lines) | stat: -rw-r--r-- 3,713 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
126
127
128
129
130
131
132
133
134
135
#
# 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 hexadecimal"

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 ur [0.01:1]
set vr [0.01:1]
set zr [0:1.065]
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"

set title "Explicit borders for pm3d tiling"
set pm3d border lt black lw 1.5
set sample 10
set isosample 10
replot

pause -1 "Hit return to continue"

reset