Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "ofApp.h"
- void ofApp::setup() {
- ofSetVerticalSync(true);
- int rings = 32, resolution = 32;
- float length = 256, maxRadius = 128;
- for(int i = 0; i < rings; i++) {
- float radius = ofNoise(i / 4.) * maxRadius;
- ofVec3f offset(0, 0, ofMap(i, 0, rings, -length, length) / 2);
- for(int j = 0; j < resolution; j++) {
- float theta = ofMap(j, 0, resolution, 0, 360);
- ofVec2f cur(radius, 0);
- cur.rotate(theta);
- mesh.addVertex(offset + cur);
- mesh.addColor(ofColor((i * j) % 2 == 0 ? 255 : 0));
- }
- }
- for(int i = 0; i < rings - 1; i++) {
- for(int j = 0; j < resolution; j++) {
- int sw = i * resolution + j, se = sw + 1;
- if(j + 1 == resolution) {
- se -= resolution;
- }
- int nw = sw + resolution, ne = se + resolution;
- mesh.addTriangle(sw, se, nw);
- mesh.addTriangle(nw, se, ne);
- }
- }
- mesh.setMode(OF_PRIMITIVE_TRIANGLES);
- }
- void ofApp::update() {
- }
- void ofApp::draw() {
- ofBackground(0);
- cam.begin();
- glEnable(GL_DEPTH_TEST);
- ofSetColor(255);
- ofRotateY(90);
- mesh.draw();
- cam.end();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement