Alexander Deplov

Drawing with time func

Drawing with time func

Code

var amountX = 100
var amountY = 50
var spacingX = 0.01
var spacingY = 0.02
var radius = 3
var scaling = 2.5
var distanceOfReact = 20
var gridObjectsArray = []

for (var x = 0; x < amountX; x++) {
    for (var y = 0; y < amountY; y++) {
        var circle = new Path.Rectangle({
            size: radius,
            radius: radius/4,
            fillColor: 'red',
            position: [view.center.x * x * spacingX, view.center.y * y * spacingY],
            applyMatrix: false,
            opacity: 0.2
        })
        circle.sendToBack()
        gridObjectsArray.push(circle)
    }
}

function onFrame(event) {
    if (event.count % 20 == 0) {
        gridObjectsArray.map(function(object, i) {
            if (Math.floor(Math.random() * gridObjectsArray.length) + 0 % i == 0) {
                var tween = object.tweenTo({
                    scaling: '3',
                    opacity: '1'
                }, 200)
                tween.then(function() {
                    object.tweenTo({
                        scaling: '1',
                        rotation: '0',
                        opacity: '0.2'
                    }, 200)
                })
            }
        })
    }
}

function onMouseDrag(event) {
    this.position += event.delta
    gridObjectsArray.map(function(object, i) {
        var distance = event.point.getDistance(object.position)
        if (distance < distanceOfReact) {
            object.onFrame = function(event) {
                this.scaling = Math.sin(event.count * 0.02) * scaling
                this.opacity = 1
            }
        }
    })
}

project.activeLayer.position = view.center