Skip to content

Instantly share code, notes, and snippets.

@furenku
Last active February 27, 2016 20:55
Show Gist options
  • Select an option

  • Save furenku/73aebe97e74d20337136 to your computer and use it in GitHub Desktop.

Select an option

Save furenku/73aebe97e74d20337136 to your computer and use it in GitHub Desktop.
<canvas id="myCanvas" style="width:300px; height:300px;"></canvas>
<script src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.9.25/paper-full.min.js"></script>
<script type="text/paperscript" canvas="myCanvas">
// The amount of circles we want to make:
var count = 150;
// Create a symbol, which we will use to place instances of later:
var path = new Path.Circle({
center: [0, 0],
radius: 10,
fillColor: 'white',
strokeColor: 'black'
});
var symbol = new Symbol(path);
// Place the instances of the symbol:
for (var i = 0; i < count; i++) {
// The center position is a random point in the view:
var center = Point.random() * view.size;
var placedSymbol = symbol.place(center);
placedSymbol.scale(i / count);
}
// The onFrame function is called up to 60 times a second:
function onFrame(event) {
// Run through the active layer's children list and change
// the position of the placed symbols:
for (var i = 0; i < count; i++) {
var item = project.activeLayer.children[i];
// Move the item 1/20th of its width to the right. This way
// larger circles move faster than smaller circles:
item.position.x += item.bounds.width / 20;
// If the item has left the view on the right, move it back
// to the left:
if (item.bounds.left > view.size.width) {
item.position.x = -item.bounds.width;
}
}
}
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment