From 77cbae6b637f97afa45c241331ae1d58128ec63c Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Sun, 6 Oct 2019 13:03:35 +0200 Subject: [PATCH] 'rainbow by distance' pattern --- pattern2.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pattern2.cpp b/pattern2.cpp index 2a5a5d84..8473632d 100644 --- a/pattern2.cpp +++ b/pattern2.cpp @@ -1460,6 +1460,7 @@ EX map colortables = { {'F', {0x1C0C0C0, 0x202020}}, {'w', {0x303030, 0x1C0C0C0}}, {'v', {0xC00000, 0xC08000, 0xC0C000, 0x00C000, 0xC0C0, 0x00C0, 0xC000C0}}, + {'j', {0x100FFFF, 0x100FF00, 0x1FFFF00, 0x1FF8000, 0x1FF0000, 0x1FF00FF}}, }; color_t random_landscape(cell *c, int mul, int div, int step, color_t base) { @@ -1616,6 +1617,12 @@ EX namespace patterns { return nestcolors[pattern_threecolor(c)]; case 'v': return colortables['v'][sevenval(c)]; + case 'j': { + int d = c->master->distance; + if(d % 2 == 0 || d < -5 || d > 5) return 0; + println(hlog, d, " -> ", (d+5)/2); + return colortables['j'][(d+5)/2]; + } case 'f': { color_t res; for(int i=0; i<3; i++) { @@ -1641,7 +1648,9 @@ EX namespace patterns { dialog::init("predesigned patterns"); dialog::addItem(WDIM == 3 ? XLAT("empty") : XLAT("single color"), 'g'); dialog::addItem(XLAT("random colors"), 'r'); - dialog::addItem(XLAT("distance from origin"), 'M'); + + if(WDIM == 2) dialog::addItem(XLAT("distance from origin"), 'M'); + dialog::addSelItem(XLAT("rainbow by distance"), "binary/Solv", 'j'); if(geometry_supports_cdata()) { dialog::addItem(XLAT("rainbow landscape"), 'l');