Skip to content

Instantly share code, notes, and snippets.

@katowulf
Created January 6, 2013 21:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save katowulf/4470507 to your computer and use it in GitHub Desktop.
Save katowulf/4470507 to your computer and use it in GitHub Desktop.
A CodePen by katowulf. Interactive image nodes - Interactive nodes built from image data. Play with your mouse :)
<canvas id='canvas'></canvas>
(function() {
var lastTime = 0;
var vendors = ['ms', 'moz', 'webkit', 'o'];
for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
window.requestAnimationFrame = window[vendors[x]+'RequestAnimationFrame'];
window.cancelAnimationFrame = window[vendors[x]+'CancelAnimationFrame']
|| window[vendors[x]+'CancelRequestAnimationFrame'];
}
if (!window.requestAnimationFrame)
window.requestAnimationFrame = function(callback, element) {
var currTime = new Date().getTime();
var timeToCall = Math.max(0, 16 - (currTime - lastTime));
var id = window.setTimeout(function() { callback(currTime + timeToCall); },
timeToCall);
lastTime = currTime + timeToCall;
return id;
};
if (!window.cancelAnimationFrame)
window.cancelAnimationFrame = function(id) {
clearTimeout(id);
};
}());
var Nodes = {
// Settings
density: 6,
drawDistance: 9,
baseRadius: 2,
maxLineThickness: 1,
reactionSensitivity: 1,
lineThickness: 1,
points: [],
mouse: { x: -1000, y: -1000, down: false },
animation: null,
canvas: null,
context: null,
imageInput: null,
bgImage: null,
bgCanvas: null,
bgContext: null,
bgContextPixelData: null,
init: function() {
// Set up the visual canvas
this.canvas = document.getElementById( 'canvas' );
this.context = canvas.getContext( '2d' );
this.context.globalCompositeOperation = "lighter";
this.canvas.width = window.innerWidth;
this.canvas.height = window.innerHeight;
this.canvas.style.display = 'block'
this.imageInput = document.createElement( 'input' );
this.imageInput.setAttribute( 'type', 'file' );
this.imageInput.style.visibility = 'hidden';
this.imageInput.addEventListener('change', this.upload, false);
document.body.appendChild( this.imageInput );
this.canvas.addEventListener('mousemove', this.mouseMove, false);
this.canvas.addEventListener('mousedown', this.mouseDown, false);
this.canvas.addEventListener('mouseup', this.mouseUp, false);
this.canvas.addEventListener('mouseout', this.mouseOut, false);
window.onresize = function(event) {
Nodes.canvas.width = window.innerWidth;
Nodes.canvas.height = window.innerHeight;
Nodes.onWindowResize();
}
// Load initial input image (the chrome logo!)
this.loadData( 'data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAnUAAAB7CAMAAAAlvIY/AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAMAUExURVByi/j5+vv8/JCkskx0kjJWcVNxh/n7/HmZsLvN2jxlg/T2+F+NrtLb4f7+/jNceeHm6qKzvi5UcFN5lHuSo8XR2nSQpJ2ywpOqu1yBm8zb5UZmfu7x80Jphdji66zC0W2Hms/X3sDR3oalu1x5jj5geUlxjn2Zram+zf3+/qa1wYCgtrfJ1kJmgKm8ymuMo1yEofL2+dHZ30trgtHd5jFZdi1Sbai6xqy8x3+csTVZdJ6wvWaMqDhbdbLCzsXS3GqOqaO6yvf6/YymurrJ1GOJpLbH1ezv8sXP126JnrfG0YiitazAz3OVrTleevb4+Z2uu+js7yxSbjthfLHD0fX3+Fh2jWWFnMPV4fHz9eHp7kRsiZuuui1WczNYc42ltniTppmvv+nt8OTq7tzj6FF2kdzi505uhl9+lWiDlqG2xfz9/mOBlzpddnOTqenv9Jirueju89rk69vi6C5Sbb7N17HE0ktthoypvoedrTNXcUNlfrnS4pWotWB8kJa71Pb5+9zo8cvd6uXp7fL09qjH27C9yHyqycrT2o620YWwze70+OXu9Nfe44idrLHM373I0dPj7Z/B2MLX5vz8/f39/d7k6Nrg5WJ9kU1sg77K0oqfruTo7LfEzXGKnMjS2XWNn/P19oecq8nT2m+Im8DL0/P194CXp1Jwh4abq9be4y5TbuXq7cjR2LTBy+/y9C9VcDxed+vw9Ovv8YObrC1Tb8fV4Iygr9bg5/X4+fX4+3yTpX+iuXKWsVqAm+Lq8GB9kuny+DBXdMbQ1/L2+FR8mdbd44mfry5df+Tp7OTp7dbg6HmWrH+VpmCFoDhgfbjG0UJje0FjfKS3xDZgfrDAyrXCzMrV3LLG1MzV26y+zLnGz9Xc4oOes6O1wpyvva+9x/f397vI05iqt6CxvaGyvjFVcK27xitSbu/1+T5jf5aottjg5Nrh5jZdeYKZq+Xr74ugsI2jtC1RbPj6+unu8aW/0urv9CtUcUpuiWiIn3KOo3SlxixRbP///////5qZZDoAAAEAdFJOU////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wBT9wclAAAT0UlEQVR42uydeZwcVZ3AwyTpkGQzppMJATrIBGeEiaBuAoMG26CiCZfE4EQRE4UNCi6wHogaq7uqr+n7zuROuAKE4BHUeJ/svevuZw/3ci92vfloRI13V5c93T0zVdW/93u/V11dY+D9/hqol1fV9fv273q/93qOIUWK1zJHvgIpkjopkjopUiR1UiR1UqRI6qRI6qRIkdRJkdRJkdRJkSKpkyKpkyLlWUzd7v3+wuGhdcM777ln5/C6ocMF//7dUkeSut7J2jUDvlG9Q0Z9A2vWSj1J6tyXvk1zh3REhuZu6pO6ktS5KXs279W5snfzHqktSZ1b8tBjAZ0kgccekvqS1Lkh9z16l06Wux69T2pMUtetHDswrAvJ8IFjp/87z0UiyqREIrlZfAot0n6MqPfPYaIuxBPSKPPkKeyiYSz2H9WF5ah/MfxJxkMCkkphL2XcpXkAVUcT6ZpZMpWqReVlJTr9d1YhSzWiCTxFpGp7isZzqEoZmSKqOBecOq7CSaPMk4ewi0bqft2R3A9rOiw4TWBwPMZ4x0JT+QqlOFHb0UoNkmQiMj1ErakzcNREJJMo07ivJFlTpBWW0VNrzgWnLhz2oVoKt0ehY8IWmxEOADO0Zc0+3aHsWwO9mEKY8wEgYsYN1lThoMA8gyUKcxkEGSXbMm81E3U5VVUzIvpNtmdBnHuCM0U6qnlL3aSUWHormOxCiQFeON85f6zQvhgct1iEgw/qXciDB5nOMSBo8caZGooNuDNP212qdpc2Kab/UWnoO5s2U9e2TRkh7jBPG1GdTtFb6gwDftUFm27BFw9/1NaEAasXWn1E70qOrGa92ThkowKtKAy0X+EYU0th1lQDYVHuyha3lpiOobRycYaqZrCl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');
},
preparePoints: function() {
// Clear the current points
this.points = [];
var width, height, i, j;
var colors = this.bgContextPixelData.data;
for( i = 0; i < this.canvas.height; i += this.density ) {
for ( j = 0; j < this.canvas.width; j += this.density ) {
var pixelPosition = ( j + i * this.bgContextPixelData.width ) * 4;
// Dont use whiteish pixels
if ( colors[pixelPosition] > 200 && (colors[pixelPosition + 1]) > 200 && (colors[pixelPosition + 2]) > 200 || colors[pixelPosition + 3] === 0 ) {
continue;
}
var color = 'rgba(' + colors[pixelPosition] + ',' + colors[pixelPosition + 1] + ',' + colors[pixelPosition + 2] + ',' + '1)';
this.points.push( { x: j, y: i, originalX: j, originalY: i, color: color } );
}
}
},
updatePoints: function() {
var i, currentPoint, theta, distance;
for (i = 0; i < this.points.length; i++ ){
currentPoint = this.points[i];
theta = Math.atan2( currentPoint.y - this.mouse.y, currentPoint.x - this.mouse.x);
if ( this.mouse.down ) {
distance = this.reactionSensitivity * 200 / Math.sqrt((this.mouse.x - currentPoint.x) * (this.mouse.x - currentPoint.x) +
(this.mouse.y - currentPoint.y) * (this.mouse.y - currentPoint.y));
} else {
distance = this.reactionSensitivity * 100 / Math.sqrt((this.mouse.x - currentPoint.x) * (this.mouse.x - currentPoint.x) +
(this.mouse.y - currentPoint.y) * (this.mouse.y - currentPoint.y));
}
currentPoint.x += Math.cos(theta) * distance + (currentPoint.originalX - currentPoint.x) * 0.05;
currentPoint.y += Math.sin(theta) * distance + (currentPoint.originalY - currentPoint.y) * 0.05;
}
},
drawLines: function() {
var i, j, currentPoint, otherPoint, distance, lineThickness;
for ( i = 0; i < this.points.length; i++ ) {
currentPoint = this.points[i];
// Draw the dot.
this.context.fillStyle = currentPoint.color;
this.context.strokeStyle = currentPoint.color;
for ( j = 0; j < this.points.length; j++ ){
// Distaqnce between two points.
otherPoint = this.points[j];
if ( otherPoint == currentPoint ) {
continue;
}
distance = Math.sqrt((otherPoint.x - currentPoint.x) * (otherPoint.x - currentPoint.x) +
(otherPoint.y - currentPoint.y) * (otherPoint.y - currentPoint.y));
if (distance <= this.drawDistance) {
this.context.lineWidth = (1 - (distance / this.drawDistance)) * this.maxLineThickness * this.lineThickness;
this.context.beginPath();
this.context.moveTo(currentPoint.x, currentPoint.y);
this.context.lineTo(otherPoint.x, otherPoint.y);
this.context.stroke();
}
}
}
},
drawPoints: function() {
var i, currentPoint;
for ( i = 0; i < this.points.length; i++ ) {
currentPoint = this.points[i];
// Draw the dot.
this.context.fillStyle = currentPoint.color;
this.context.strokeStyle = currentPoint.color;
this.context.beginPath();
this.context.arc(currentPoint.x, currentPoint.y, this.baseRadius ,0 , Math.PI*2, true);
this.context.closePath();
this.context.fill();
}
},
draw: function() {
this.animation = requestAnimationFrame( function(){ Nodes.draw() } );
this.clear();
this.updatePoints();
this.drawLines();
this.drawPoints();
},
clear: function() {
this.canvas.width = this.canvas.width;
},
// The filereader has loaded the image... add it to image object to be drawn
loadData: function( data ) {
this.bgImage = new Image;
this.bgImage.src = data;
this.bgImage.onload = function() {
//this
Nodes.drawImageToBackground();
}
},
// Image is loaded... draw to bg canvas
drawImageToBackground: function () {
this.bgCanvas = document.createElement( 'canvas' );
this.bgCanvas.width = this.canvas.width;
this.bgCanvas.height = this.canvas.height;
var newWidth, newHeight;
// If the image is too big for the screen... scale it down.
if ( this.bgImage.width > this.bgCanvas.width - 100 || this.bgImage.height > this.bgCanvas.height - 100) {
var maxRatio = Math.max( this.bgImage.width / (this.bgCanvas.width - 100) , this.bgImage.height / (this.bgCanvas.height - 100) );
newWidth = this.bgImage.width / maxRatio;
newHeight = this.bgImage.height / maxRatio;
} else {
newWidth = this.bgImage.width;
newHeight = this.bgImage.height;
}
// Draw to background canvas
this.bgContext = this.bgCanvas.getContext( '2d' );
this.bgContext.drawImage( this.bgImage, (this.canvas.width - newWidth) / 2, (this.canvas.height - newHeight) / 2, newWidth, newHeight);
this.bgContextPixelData = this.bgContext.getImageData( 0, 0, this.bgCanvas.width, this.bgCanvas.height );
this.preparePoints();
this.draw();
},
mouseDown: function( event ){
Nodes.mouse.down = true;
},
mouseUp: function( event ){
Nodes.mouse.down = false;
},
mouseMove: function(event){
Nodes.mouse.x = event.offsetX || (event.layerX - Nodes.canvas.offsetLeft);
Nodes.mouse.y = event.offsetY || (event.layerY - Nodes.canvas.offsetTop);
},
mouseOut: function(event){
Nodes.mouse.x = -1000;
Nodes.mouse.y = -1000;
Nodes.mouse.down = false;
},
// Resize and redraw the canvas.
onWindowResize: function() {
cancelAnimationFrame( this.animation );
this.drawImageToBackground();
}
}
Nodes.init();
body {
margin: 0px;
overflow: hidden;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment