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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
|
.TH BLIND-SPIRAL-GRADIENT 1 blind
.SH NAME
blind-spiral-gradient - Generate a video with a spiral gradient
.SH SYNOPSIS
.B blind-spiral-gradient
[-s
.I spirals
| -t]
[-al]
-w
.I width
-h
.I height
.SH DESCRIPTION
.B blind-spiral-gradient
prints a video with a spiral gradient to stdout,
parameters for each from is read from each frame
in stdin. The gradient is stored in all channels
of the video.
.P
The video in stdin must contain 2 to 5 pixels per
frame (inclusively). The first pixel shall point
to the beginning of the gradient (where the value
is 0) and the second pixel shall point to the end
of the gradient (where the value is 1). In these
pixels, the value of the first channel specifies
the X-position and the value of the second
channel specifies Y-position, the other channels
are ignored. The angle of the vector between these
two pixels determine the angle of the spiral.
.P
If there are four or five pixel in each frame in
stdin, the third and fourth pixels are used to
modify the shape of the spiral so that it is
based on a superellipse instead of a circle.
The first and second channel of third pixel creates
a vector that is normalised. This vector and its
normal creates the basis an imaginary coordinate
system with its origo at the beginning of the spiral.
The superellipse defined by the equation
.RI | x |^ a +| y / m |^ b =1,
where
.I x
is the distance from origo along the vector,
.I y
is the distance from origo along the vector's normal,
.IR a ,
.IR b ,
and
.I m
are the values of the first, second, and third
channels, respectively, in the fourth pixel. and has
the distance 1 from origo at all points on it. If
.IR a ,
.IR b ,
and
.I m
have the values 2, 2, and 1, respectively, these
pixels have no effect on the spiral's shape.
The third and fourth channels in the third pixel
and the fourth channel in the fourth pixel are
ignored.
.P
If there are three or five pixels, the channels,
in order, in the last pixel, specifies the value
.IR a ,
.IR e ,
.IR p ,
and
.IR k ,
whose default values are 0, 1, 1, and 1, respectively.
.I k
is ignored unless
.B -l
is used. If
.B -l
is not used, the spiral is defined by the equation
.IR r = a +( b /( 2\fBpi\fP )^ e ) v ^( ep ).
If
.B -l
is used, the spiral is defined by the equation
.RI log( r / k )= a +(log( b )/( 2\fBpi\fP )^ e ) v ^( ep ).
.I r
is defined as the distance from the center of the
spiral,
.I b
is defined as the distance between the points
specified in the first and second pixel from stdin,
and
.I v
is defined as the angle.
.SH NOTES
Pixels after the end of the gradient have values
larger than 1.
.BR blind-*-wave (1)
commands can be used to put all values between
0 and 1.
.SH OPTIONS
.TP
.B -a
Create a spiral that gones anticlockwise.
.TP
.B -l
Create a logarithmic spiral.
.TP
.BR -s " "\fIspirals\fP
Draw
.I spirals
spirals
going out the specified centre instead of
just one spiral. The spirals are uniformly
distributed.
.I spirals
can be any non-zero real number.
.TP
.B -t
Base the resulting values only on the angle
in the spiral formula rather than then both
the angle and radius. This is useful for
creating transitions with spiral effects.
.TP
.BR -w " "\fIwidth\fP
The width of the video, in pixels.
.TP
.BR -h " "\fIheight\fP
The height of the video, in pixels.
.SH NOTES
Because
.B -s
has no affect when
.B -t
is applied,
.B -s
and
.B -t
cannot be combined unless
.I spirals
is 1. This will change in the future
if a way to meaningfully combined the
two flags is found.
.SH SEE ALSO
.BR blind (7),
.BR blind-from-text (7),
.BR blind-cone-gradient (1),
.BR blind-linear-gradient (1),
.BR blind-radial-gradient (1),
.BR blind-square-gradient (1),
.BR blind-double-sine-wave (1),
.BR blind-round-wave (1),
.BR blind-sawtooth-wave (1),
.BR blind-sinc-wave (1),
.BR blind-sine-wave (1),
.BR blind-triangular-wave (1),
.BR blind-spectrum (1)
.SH AUTHORS
Mattias Andrée
.RI < maandree@kth.se >
|