From 3dfad798cc7eff06d0d3c14441ee911ab66dcd88 Mon Sep 17 00:00:00 2001 From: Curtis McEnroe Date: Wed, 11 Apr 2018 14:27:50 -0400 Subject: Add brot rotation controls --- bin/brot.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/bin/brot.c b/bin/brot.c index cd2f44c3..3402955c 100644 --- a/bin/brot.c +++ b/bin/brot.c @@ -49,7 +49,7 @@ void draw(uint32_t *buf, size_t width, size_t height) { double complex zy = ((double)y / (double)height - 0.5) * cimag(scale) * I; for (size_t x = 0; x < width; ++x) { double complex zx = ((double)x / (double)width - 0.5) * creal(scale); - uint64_t n = mandelbrot((origin + zx + zy) * rotate); + uint64_t n = mandelbrot(origin + (zx + zy) * rotate); uint32_t g = (double)n / (double)depth * 255.0; buf[y * width + x] = g << 16 | g << 8 | g; } @@ -57,16 +57,22 @@ void draw(uint32_t *buf, size_t width, size_t height) { } bool input(char in) { + const double PI = acos(-1.0); + double complex realTrans = 0.01 * creal(scale) * rotate; + double complex imagTrans = 0.01 * cimag(scale) * I * rotate; + double complex rotation = cexp(0.01 * PI * I); switch (in) { case 'q': return false; case '.': depth++; break; case ',': if (depth) depth--; break; case '+': scale *= 0.9; break; case '-': scale *= 1.1; break; - case 'l': origin += creal(scale) * 0.01; break; - case 'h': origin -= creal(scale) * 0.01; break; - case 'j': origin += cimag(scale) * 0.01 * I; break; - case 'k': origin -= cimag(scale) * 0.01 * I; break; + case 'l': origin += realTrans; break; + case 'h': origin -= realTrans; break; + case 'j': origin += imagTrans; break; + case 'k': origin -= imagTrans; break; + case 'u': rotate *= rotation; break; + case 'i': rotate /= rotation; break; } return true; } @@ -75,10 +81,11 @@ const char *status(void) { static char buf[256]; snprintf( buf, sizeof(buf), - "(%u) (%g + %gi) (%g + %gi)", + "%u %g+%gi %g+%gi %g+%gi", depth, creal(origin), cimag(origin), - creal(scale), cimag(scale) + creal(scale), cimag(scale), + creal(rotate), cimag(rotate) ); return buf; } -- cgit 1.4.1 mp;id=b4c3562f57c924866314d0f80f46dddecd4ce61a&showmsg=1&follow=1'>root/configfile.h (unfollow)
Commit message (Collapse)Author
2009-08-08Introduce noplainemail option to hide email adresses from spambotsMartin Szulecki
Signed-off-by: Martin Szulecki <opensuse@sukimashita.com>
2009-07-25cgit.h: keep config flags sortedLars Hjemli
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-07-25cgitrc.5.txt: document 'embedded' and 'noheader'Lars Hjemli
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-07-25Add support for 'noheader' optionLars Hjemli
This option can be used to disable the standard cgit page header, which might be useful in combination with the 'embedded' option. Suggested-by: Mark Constable <markc@renta.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-07-25cgitrc.5.txt: document 'head-include'Lars Hjemli
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-07-25ui-blob: return 'application/octet-stream' for binary blobsLars Hjemli
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-07-25ui-plain: Return 'application/octet-stream' for binary files.Remko Tronçon
Signed-off-by: Remko Tronçon <git@el-tramo.be> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-06-11use cgit_httpscheme() for atom feedDiego Ongaro
2009-06-11add cgit_httpscheme() -> http:// or https://Diego Ongaro
2009-06-07Return http statuscode 404 on unknown branchLars Hjemli
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-06-07Add head-include configuration option.Mark Lodato
This patch adds an option to the configuration file, "head-include", which works just like "header" or "footer", except the content is put into the HTML's <head> tag.
2009-03-15CGIT 0.8.2.1Lars Hjemli
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-03-15Fix doc-related glitches in Makefile and .gitignoreLars Hjemli
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-03-15ui-snapshot: avoid segfault when no filename is specifiedLars Hjemli
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-03-15fix segfault when displaying empty blobsEric Wong
When size is zero, subtracting one from it turns it into ULONG_MAX which causes an out-of-bounds access on buf. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-02-19Add support for HEAD requestsLars Hjemli
This is a quick 'n dirty hack which makes cgit honor HEAD requests. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-02-19Add support for ETag in 'plain' viewLars Hjemli
When downloading a blob identified by its path, the client might want to know if the blob has been modified since a previous download of the same path. To this end, an ETag containing the blob SHA1 seems to be ideal. Todo: add support for HEAD requests... Suggested-by: Owen Taylor <otaylor@redhat.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-02-12ui-tree: escape ascii-text properly in hexdump viewLars Hjemli
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
2009-02-12Makefile: add doc-related targetsLars Hjemli