SketchPad

Some web space to sketch, doodle and make notes. Made using these tools. See more of my work here.

Daily Sketches

Sketch 2015-06-24

        void ofApp::setupAnim() {
    paused = true;
    numLayers = 6;
    topLayer1 = numLayers - 2;
    topLayer2 = numLayers - 1;
    spacing = 100;
    offset = offset2 = 0;
    increment = 20;
    masker.setup(numLayers);
    
    image.setup("surface.png", width, height, 1, TEXTURE_OFFSET_BOTTOM_LEFT);
    image.incrementTextureOffsetY(0.5);
}

void ofApp::updateAnim(){
    incrementOffset();
    
    for(int i = 0; i < numLayers - 2; i++) {
        masker.beginLayer(i);
        {
            ofBackground(ofColor(ofColor::black, 0));
            hue = ofMap(i, 0, numLayers, 20, 140);
            ofSetColor(ofColor::fromHsb(hue, 255, 255, 240));
            thickness = ofMap(sin(ofGetFrameNum() * 0.01), -1, 1, 10, 50);
            ofTranslate(0, i * 10);
            drawLines(offset, spacing, thickness);
        }
        masker.endLayer(i);
        
        masker.beginMask(i);
        {
            ofBackground(ofColor::black);
            ofSetColor(ofColor::white);
            thickness = ofMap(sin(ofGetFrameNum() * 0.1), -1, 1, 10, 70);
            ofTranslate(0, i * 10);
            drawLines(offset2, spacing, thickness);
        }
        masker.endMask(i);
    }
    
    masker.beginLayer(topLayer1);
    image.draw();
    masker.endLayer(topLayer1);
    
    masker.beginLayer(topLayer2);
    rotateScreen(90);
    image.draw();
    masker.endLayer(topLayer2);
}

void ofApp::drawAnim() {
    ofPushMatrix();
    {
        ofSetColor(ofColor::black, 20);
        ofRect(0, 0, width, height);
        masker.drawLayers(0, 4);
        ofScale(0.5, 0.5);
        rotateScreen(90);
        
        masker.drawLayer(2);
        
        masker.draw();
        ofScale(0.5, 0.5);
        rotateScreen(90);
        
        masker.drawLayer(1);
    }
    ofPopMatrix();
    masker.drawLayer(5);
    masker.drawOverlay();
    
    if(ofGetFrameNum() == 92) {
        paused = false;
    }
    
    if(ofGetFrameNum() == 162) {
        renderGif();
    }
}

void ofApp::incrementOffset() {
    offset+=increment;
    if(offset >= spacing) {
        offset = 0;
    }
    
    offset2-=increment;
    if(offset2 <= -spacing) {
        offset2 = 0;
    }
}

void ofApp::drawLines(float _offset, float _spacing, float _thickness) {
    for(int y = -height; y < doubleHeight; y += _spacing) {
        ofRect(-width, y + _offset, tripleWidth, _thickness);
    }
}

void ofApp::rotateScreen(float degrees) {
    ofTranslate(halfWidth, halfHeight);
    ofRotateZ(degrees);
    ofTranslate(-halfWidth, -halfHeight);
}
    

It's a glitch.

Daily sketch