X-Git-Url: http://dolda2000.com/gitweb/?p=kaka%2Fcakelight.git;a=blobdiff_plain;f=src%2Fkaka%2Fcakelight%2FAmbientMode.java;h=0b41b4c731058ac4ee5e157cb9bc3d69e84aa0e1;hp=a6ae8da6294f61c8fe7b55c971066ecffe783cd5;hb=65af4342c4259d9b99de31a65be58cb1ec4e524d;hpb=0bf6c885fdaa8273ab72789f7efcd9477234168a diff --git a/src/kaka/cakelight/AmbientMode.java b/src/kaka/cakelight/AmbientMode.java index a6ae8da..0b41b4c 100644 --- a/src/kaka/cakelight/AmbientMode.java +++ b/src/kaka/cakelight/AmbientMode.java @@ -62,10 +62,21 @@ public class AmbientMode extends Mode { // TODO split into DynamicAmbient and St } } else if (type == 1) { for (int i = 0; i < config.leds.getCount(); i++) { - double g = noise.getr(0, 0.5, 0.5, frame.xOf(i), frame.yOf(i), time / 5000.0); - double b = noise.getr(0, 1, 1, frame.xOf(i), frame.yOf(i), time / 7000.0); + double x = frame.xOf(i); + double y = frame.yOf(i); + double g = Math.min(1, Math.max(0, noise.getr(-0.5, 0.5, 0.5, x, y, time / 5000.0))); + double b = Math.pow(Math.min(1, Math.max(0, noise.getr(0, 0.9, 1, x, y, time / 7000.0))), 2); frame.setLedColor(i, Color.rgb(0, g, b)); } + } else if (type == 2) { + int ledCount = config.leds.getCount(); + double hueOffset = time * 0.00001; + double hueLength = 1.0 / 6; + for (int i = 0; i < config.leds.getCount(); i++) { + double ledOffset = (i + (hueOffset * ledCount)) % ledCount; + double value = Math.abs((ledOffset * 2 - ledCount) / ledCount); // 1 to 0 to 1 + frame.setLedColor(i, Color.hsv(value * hueLength + hueOffset, 1, 1)); + } } }