Explosion
authorAlyssa Rosenzweig <bobbybee@users.noreply.github.com>
Tue, 2 Jun 2015 18:58:11 +0000 (14:58 -0400)
committerAlyssa Rosenzweig <bobbybee@users.noreply.github.com>
Tue, 2 Jun 2015 18:58:11 +0000 (14:58 -0400)
DynImage.js
main.js

index 5e973f0..d67e5fb 100644 (file)
@@ -125,6 +125,30 @@ DynImage.prototype.pointRing = function(sx, sy, height, layerIntensity, intensit
        }               
 }
 
+DynImage.prototype.explosion = function(width, radius, thresh, dk, ck, r, g, b) {
+    for(var i = (width / 2) - (radius); i < (width / 2) + radius; ++i) {
+        for(var j = (width / 2) - (radius); j < (width / 2) + radius; ++j) {
+            if(Math.sqrt( ( ((width / 2) - i) * ((width / 2) - i) ) + ((width / 2) - j) * ((width / 2) - j) ) > radius) break;
+
+            if(Math.random() > thresh) {
+                // explode pixel
+                
+                var theta = Math.random() * Math.PI * 2;
+
+                var newX = i + ( (dk * (width / 2)) * Math.cos(theta));
+                var newY = j + ( (dk * (width / 2)) * Math.sin(theta));
+
+                var color = [r, g, b];
+                this.setColor(newX, newY, color[0] + (Math.random() * ck), color[1] + (Math.random() * ck), color[2] + (Math.random() * ck));
+            } else {
+                var color = [r, g, b];
+
+                this.setColor(i, j, color[0], color[1], color[2]);
+            }
+        }
+    }
+}
+
 DynImage.prototype.character2 = function(width, height) {
        for(var x = 0; x < width; ++x) {
                for(var y = 0; y < height; ++y) {
diff --git a/main.js b/main.js
index 7d107cf..a9635b0 100644 (file)
--- a/main.js
+++ b/main.js
@@ -33,9 +33,11 @@ function pretty(name, ired, igreen, iblue, ringConstant, stainConstant, stainSiz
 
        dynimage.punchWave(width / 2, height / 2, width * stainSize, height * stainSize, Math.floor(stainConstant), width / 3, waveConstant);
 
-       dynimage.character2(width, height);
+
+   dynimage.explosion(width, 50, 0.7, 0.7, 0.6, Math.floor(Math.random() * 255), Math.floor(Math.random() * 255), Math.floor(Math.random() * 255));
+       
+    dynimage.character2(width, height);
        dynimage.pointRing(width / 2, height / 2, width, ringConstant, intensityConstant);
-       dynimage.character2(width, height);
 
        dynimage.recontrast(contrastThreshold, Math.floor(Math.random() * 60));
 
This page took 0.024955 seconds and 4 git commands to generate.