blind-spiral-gradient: add -s - blind - suckless command-line video editing uti… | |
git clone git://git.suckless.org/blind | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit d91c5e12a53a33d50a5a0cef41255ae5b39bd55e | |
parent e2f2b65b49d1a47b1a749c5de4b0efcfc7ebb5bc | |
Author: Mattias Andrée <[email protected]> | |
Date: Tue, 11 Jul 2017 20:26:04 +0200 | |
blind-spiral-gradient: add -s | |
Signed-off-by: Mattias Andrée <[email protected]> | |
Diffstat: | |
M man/blind-spiral-gradient.1 | 12 ++++++++++++ | |
M src/blind-spiral-gradient.c | 10 +++++++++- | |
2 files changed, 21 insertions(+), 1 deletion(-) | |
--- | |
diff --git a/man/blind-spiral-gradient.1 b/man/blind-spiral-gradient.1 | |
@@ -3,6 +3,8 @@ | |
blind-spiral-gradient - Generate a video with a spiral gradient | |
.SH SYNOPSIS | |
.B blind-spiral-gradient | |
+[-s | |
+.IR spirals ] | |
[-al] | |
-w | |
.I width | |
@@ -100,6 +102,16 @@ Create a spiral that gones anticlockwise. | |
.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 | |
.BR -w " "\fIwidth\fP | |
The width of the video, in pixels. | |
.TP | |
diff --git a/src/blind-spiral-gradient.c b/src/blind-spiral-gradient.c | |
@@ -1,10 +1,11 @@ | |
/* See LICENSE file for copyright and license details. */ | |
#include "common.h" | |
-USAGE("[-al] -w width -h height") | |
+USAGE("[-s spirals] [-al] -w width -h height") | |
static int anticlockwise = 0; | |
static int logarithmic = 0; | |
+static double spirals = 1; | |
static size_t width = 0; | |
static size_t height = 0; | |
static int with_params; | |
@@ -58,6 +59,7 @@ static int with_vector; | |
y2 -= y1;\ | |
u = atan2(y2, x2);\ | |
b = sqrt(x2 * x2 + y2 * y2);\ | |
+ b *= spirals;\ | |
if (logarithmic)\ | |
b = log(b);\ | |
b /= pow(2 * (TYPE)M_PI, e);\ | |
@@ -96,6 +98,7 @@ static int with_vector; | |
r = pow(r / b, ep);\ | |
r = (r - v) / (2 * (TYPE)M_PI)… | |
}\ | |
+ r = mod(r, 1 / (TYPE)spirals) * (TYPE)… | |
buf[ptr][0] = buf[ptr][1] = buf[ptr][2… | |
if (++ptr == ELEMENTSOF(buf)) {\ | |
ewriteall(STDOUT_FILENO, buf, … | |
@@ -123,6 +126,11 @@ main(int argc, char *argv[]) | |
case 'l': | |
logarithmic = 1; | |
break; | |
+ case 's': | |
+ spirals = etolf_flag('s', UARGF()); | |
+ if (!spirals) | |
+ eprintf("the value of -s must not be 0"); | |
+ break; | |
case 'w': | |
width = etozu_flag('w', UARGF(), 1, SIZE_MAX); | |
break; |