Sketch 2015-05-04
void ofApp::setupAnim() {
done = false;
numArcs = 8;
for(int i = 0; i < numArcs; i++) {
ofxShape arc;
arcs.push_back(arc);
ofxAnimatableFloat arcPosition;
arcPositions.push_back(arcPosition);
ofxAnimatableFloat arcRotation;
arcRotations.push_back(arcRotation);
}
for(int i = 0; i < numArcs; i++) {
arcPositions.at(i).setRepeatType(PLAY_ONCE);
arcPositions.at(i).setCurve(SWIFT_GOOGLE);
arcPositions.at(i).reset((width * 2) + (width * 0.2));
arcPositions.at(i).animateTo(width * 0.5);
arcPositions.at(i).setDuration(1.25);
arcRotations.at(i).setRepeatType(PLAY_ONCE);
arcRotations.at(i).setCurve(SWIFT_GOOGLE);
arcRotations.at(i).animateFromTo(180, 0);
arcRotations.at(i).setDuration(1.25);
arcs.at(i).setupHollowArc(60, (i + 1) * 10, (i + 1) * 35, 180);
arcs.at(i).setBlur(2);
arcs.at(i).positionX(arcPositions.at(i).val());
arcs.at(i).positionY(height * 0.5);
//Set colors
if(i % 3 == 0) arcs.at(i).setColor(ofColor(4, 110, 171));
if(i % 3 == 1) arcs.at(i).setColor(ofColor(195, 62, 31));
if(i % 3 == 2) arcs.at(i).setColor(ofColor(52, 189, 129));
shapeSystem.add(arcs.at(i));
}
}
void ofApp::updateAnim(){
bool allFinished = true;
if(!done) {
for(int i = 0; i < numArcs; i++) {
if(ofGetFrameNum() > (i * 7)) {
arcPositions.at(i).update(1.0f/framerate);
arcs.at(i).positionX(arcPositions.at(i).val());
arcRotations.at(i).update(1.0f/framerate);
if(i % 2 == 0) {
arcs.at(i).rotateZ(arcPositions.at(i).val());
}
if(i % 2 == 1) {
arcs.at(i).rotateZ(arcPositions.at(i).val() + 180);
}
}
if(!arcPositions.at(i).hasFinishedAnimating()) {
allFinished = false;
}
}
}
if(allFinished) {
for(int i = 0; i < numArcs; i++) {
arcPositions.at(i).setRepeatType(PLAY_ONCE);
arcPositions.at(i).setCurve(SWIFT_GOOGLE);
arcPositions.at(i).animateTo(width * 3);
}
}
shapeSystem.update();
}
void ofApp::drawAnim() {
ofBackground(0, 0, 0);
ofEnableAlphaBlending();
ofEnableBlendMode(OF_BLENDMODE_ADD);
shapeSystem.draw();
ofDisableBlendMode();
ofDisableAlphaBlending();
if(ofGetFrameNum() == 68) {
renderGif();
}
}
Things roll in. Things roll out.