Garbage Bin

It's made from wire, that's why it's transparent ;)

Log in to post a comment.

const turtle = new Turtle();

function walk(i) {
    paint_wall();
    paint_floor();
    return false;
}

function paint_wall() {
    turtle.jump(0,40);
    let radius = 70;
    
    for (j = 0; j < 60; j++) {
        paint_ellipsis(radius++);
        turtle.jump(turtle.x(), turtle.y() - 2);
    }
}

function paint_floor() {
    turtle.jump(0,40);
    let radius = 70;
    
    for (j = 0; j < 70; j++) {
        paint_ellipsis(radius--);
        turtle.jump(turtle.x(), turtle.y() + 0.5);
    }
}

function paint_ellipsis(max_radius) {
    var min_radius = max_radius / 20;
    var intermediate_steps = 3;
    var radius_step = (max_radius - min_radius) / (intermediate_steps + 1);
    var steps = intermediate_steps + 2; // lower and upper limit
    var extent = 90 / steps;
    
    var radiuses = [];
    radiuses.push(max_radius);
    
    for (n = 1; n <= intermediate_steps; n++) {
        radiuses.push(max_radius - n * radius_step);
    }
    
    radiuses.push(min_radius);
    
    for (a = 0; a < 2; a++) {
        // upper right or lower left
        for (index = 0; index < radiuses.length; index++) {
            turtle.circle(radiuses[index], extent);
        }
        
        // lower right or upper left
        for (index = radiuses.length - 1; index >= 0; index--) {
            turtle.circle(radiuses[index], extent);
        }
    }
}