Alexander Deplov

Digits made of circles

Digits made of circles

Code

var bg = new Path.Rectangle({
    size: view.bounds,
    fillColor: 'black',
    position: view.center
})
var maxX = 5
var maxY = 7
var radius = 15
var gap = 40
var number_0 = [
    [0, 1, 1, 1, 0],
    [1, 0, 0, 0, 1],
    [1, 0, 0, 1, 1],
    [1, 0, 1, 0, 1],
    [1, 1, 0, 0, 1],
    [1, 0, 0, 0, 1],
    [0, 1, 1, 1, 0]
]
var number_1 = [
    [0, 0, 1, 0, 0],
    [0, 1, 1, 0, 0],
    [0, 0, 1, 0, 0],
    [0, 0, 1, 0, 0],
    [0, 0, 1, 0, 0],
    [0, 0, 1, 0, 0],
    [0, 1, 1, 1, 0]
]
var number_2 = [
    [0, 1, 1, 1, 0],
    [1, 0, 0, 0, 1],
    [0, 0, 0, 0, 1],
    [0, 1, 1, 1, 0],
    [1, 0, 0, 0, 0],
    [1, 0, 0, 0, 0],
    [1, 1, 1, 1, 1]
]
var number_3 = [
    [1, 1, 1, 1, 1],
    [0, 0, 0, 0, 1],
    [0, 0, 0, 1, 0],
    [0, 0, 1, 1, 0],
    [0, 0, 0, 0, 1],
    [1, 0, 0, 0, 1],
    [0, 1, 1, 1, 0]
]
var number_4 = [
    [0, 0, 0, 1, 0],
    [0, 0, 1, 1, 0],
    [0, 1, 0, 1, 0],
    [1, 0, 0, 1, 0],
    [1, 1, 1, 1, 1],
    [0, 0, 0, 1, 0],
    [0, 0, 0, 1, 0]
]
var number_5 = [
    [1, 1, 1, 1, 1],
    [1, 0, 0, 0, 0],
    [1, 1, 1, 1, 0],
    [0, 0, 0, 0, 1],
    [0, 0, 0, 0, 1],
    [1, 0, 0, 0, 1],
    [0, 1, 1, 1, 0]
]
var number_6 = [
    [0, 0, 1, 1, 1],
    [0, 1, 0, 0, 0],
    [1, 0, 0, 0, 0],
    [1, 1, 1, 1, 0],
    [1, 0, 0, 0, 1],
    [1, 0, 0, 0, 1],
    [0, 1, 1, 1, 0]
]
var number_7 = [
    [1, 1, 1, 1, 1],
    [0, 0, 0, 0, 1],
    [0, 0, 0, 0, 1],
    [0, 0, 0, 1, 0],
    [0, 0, 1, 0, 0],
    [0, 1, 0, 0, 0],
    [1, 0, 0, 0, 0]
]
var number_8 = [
    [0, 1, 1, 1, 0],
    [1, 0, 0, 0, 1],
    [1, 0, 0, 0, 1],
    [0, 1, 1, 1, 0],
    [1, 0, 0, 0, 1],
    [1, 0, 0, 0, 1],
    [0, 1, 1, 1, 0]
]
var number_9 = [
    [0, 1, 1, 1, 0],
    [1, 0, 0, 0, 1],
    [1, 0, 0, 0, 1],
    [0, 1, 1, 1, 1],
    [0, 0, 0, 0, 1],
    [0, 0, 0, 1, 0],
    [1, 1, 1, 0, 0]
]
var group

function displayNumber(array) {
    if (group) {
        group.remove()
    }
    group = new Group()
    for (var x = 0; x < maxX; x++) {
        for (var y = 0; y < maxY; y++) {
            var circle = new Path.Circle({
                radius: 15,
                fillColor: 'red',
                center: [view.center.x + gap * x, view.center.y + gap * y],
                opacity: array[y][x],
                parent: group,
            })
            circle.opacity += 0.2
        }
    }
    return group
}
var i = 0

function onFrame(event) {
    if (event.count % 30 == 0) {
        if (i == 9) {
            i = 0
        }
        if (i == 0) {
            displayNumber(number_0)
        }
        if (i == 1) {
            displayNumber(number_1)
        }
        if (i == 2) {
            displayNumber(number_2)
        }
        if (i == 3) {
            displayNumber(number_3)
        }
        if (i == 4) {
            displayNumber(number_4)
        }
        if (i == 5) {
            displayNumber(number_5)
        }
        if (i == 6) {
            displayNumber(number_6)
        }
        if (i == 7) {
            displayNumber(number_7)
        }
        if (i == 8) {
            displayNumber(number_8)
        }
        if (i == 9) {
            displayNumber(number_9)
        }
        i += 1
    }
}

project.activeLayer.position = view.center