More pretty things
authorAlyssa Rosenzweig <bobbybee@users.noreply.github.com>
Mon, 18 May 2015 16:33:58 +0000 (12:33 -0400)
committerAlyssa Rosenzweig <bobbybee@users.noreply.github.com>
Mon, 18 May 2015 16:33:58 +0000 (12:33 -0400)
DynImage.js
main.js

index d17e22d..5a3b957 100644 (file)
@@ -125,6 +125,19 @@ DynImage.prototype.pointRing = function(sx, sy, height, layerIntensity) {
        }               
 }
 
+DynImage.prototype.punchImage = function(sx, sy, sw, sh, force, spread) {
+       for(var i = -(sw / 2); i < (sw/2); ++i) {
+               for(var j = (-(sh/2)); j < (sh/2); ++j) {
+                       var x = sx + i,
+                           y = sy + j;
+       
+                       var intensity = Math.sqrt( (i*i) + (j*j) );
+                       intensity = Math.pow(2, -intensity / spread);   
+                       this.punchPoint(x, y, intensity * force);
+               }
+       }       
+}
+
 // opposite of point pulling; works on a single point only
 
 DynImage.prototype.punchPoint = function(x, y, force) {
diff --git a/main.js b/main.js
index bcfb67e..39d7c7a 100644 (file)
--- a/main.js
+++ b/main.js
@@ -14,27 +14,31 @@ var DynImage = require("./DynImage");
 var width = process.argv[2]*1;
 var height = process.argv[3]*1;
 
-// buffer size is: width * height * 4 (RGBA is 4 bytes)
-var buffer = new Buffer(width * height * 4);
-
-// bare calculations are offset to DynImage
-var dynimage = new DynImage(width, height, buffer);
-
-// fill the image with a random, opaque color to start with
-dynimage.fillColor(
-               Math.floor(Math.random() * 255),
-               Math.floor(Math.random() * 255),
-               Math.floor(Math.random() * 255),
-               0       
-               );
-
-// make a beautiful point ring
-//dynimage.pointRing(width / 2, height / 2, width, 2);
-
-// punch a point
-dynimage.punchPoint(50, 50, 100);
-
-var png = new Png(buffer, width, height, 'rgba');
-png.encode(function(image) {
-                       fs.writeFile("output.png", image);
-               });
+function pretty(name, ringConstant) {
+       // buffer size is: width * height * 4 (RGBA is 4 bytes)
+       var buffer = new Buffer(width * height * 4);
+
+       // bare calculations are offset to DynImage
+       var dynimage = new DynImage(width, height, buffer);
+
+       // fill the image with a random, opaque color to start with
+       dynimage.fillColor(
+                       Math.floor(Math.random() * 255),
+                       Math.floor(Math.random() * 255),
+                       Math.floor(Math.random() * 255),
+                       0       
+                       );
+
+       // make a beautiful point ring
+
+       dynimage.punchImage(width / 2, height / 2, width, height, (Math.floor(Math.random() * 96)), width / 3);
+
+       dynimage.pointRing(width / 2, height / 2, width, ringConstant)
+
+       var png = new Png(buffer, width, height, 'rgba');
+       png.encode(function(image) {
+                               fs.writeFile(name+".png", image);
+                       });
+}
+
+pretty("output", Math.E);
This page took 0.027422 seconds and 4 git commands to generate.