-
Notifications
You must be signed in to change notification settings - Fork 0
/
ofApp.cpp
61 lines (43 loc) · 1.42 KB
/
ofApp.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include "ofApp.h"
//--------------------------------------------------------------
void ofApp::setup() {
ofSetFrameRate(30);
ofSetWindowTitle("openframeworks");
ofBackground(39);
}
//--------------------------------------------------------------
void ofApp::update() {
}
//--------------------------------------------------------------
void ofApp::draw() {
ofTranslate(ofGetWindowSize() * 0.5);
ofSeedRandom(39);
ofSetColor(255);
ofNoFill();
for (int deg = 0; deg < 360; deg += 30) {
ofPushMatrix();
ofRotate(deg);
auto base_location = glm::vec2(0, -80);
auto target_location = glm::vec2(0, -340);
auto distance = target_location - base_location;
auto len = glm::length(distance);
auto noise_seed = ofRandom(1000);
ofBeginShape();
for (int d = 0; d <= len; d += 1) {
auto location = base_location + glm::normalize(distance) * d;
auto gap = abs(len * 0.5 - d);
auto power = gap < len * 0.35 ? 1 : ofMap(gap, len * 0.35, len * 0.5, 1, 0);
auto noise_x = ofMap(ofNoise(noise_seed, location.x * 0.1, location.y * 0.015 + ofGetFrameNum() * 0.06), 0, 1, -45, 45);
int x = (int)(noise_x * power) / 10 * 10;
location += glm::vec2(x, 0);
ofVertex(location);
}
ofEndShape();
ofPopMatrix();
}
}
//--------------------------------------------------------------
int main() {
ofSetupOpenGL(720, 720, OF_WINDOW);
ofRunApp(new ofApp());
}