testRPI2
#pragma once
#include "ofMain.h"
class ofApp : public ofBaseApp{
public:
void setup();
void update();
void draw();
void keyPressed(int key);
void keyReleased(int key);
void mouseMoved(int x, int y );
void mouseDragged(int x, int y, int button);
void mousePressed(int x, int y, int button);
void mouseReleased(int x, int y, int button);
void windowResized(int w, int h);
void dragEvent(ofDragInfo dragInfo);
void gotMessage(ofMessage msg);
ofEasyCam cam;
vector<ofVec3f> startPoint;
vector<ofVec3f> endPoint;
vector<ofVec3f> movingVector;
int number;
float movingFacetor;
ofBoxPrimitive box;
bool fullScreen;
};
#include "ofApp.h"
//--------------------------------------------------------------
void ofApp::setup(){
ofSetFrameRate(60);
ofEnableAlphaBlending();
ofBackground(30);
cam.setDistance(-100);
float _lineLength = 200;
int _zSpace = 16;
number = 50;
startPoint.resize(number);
endPoint.resize(number);
for (int i=0; i<number; i++) {
float halfDegree = i * 180 / (float)number;
startPoint[i].x = 0;
startPoint[i].y = 0;
startPoint[i].z = -i*_zSpace + (number*_zSpace)*0.5;
endPoint[i].x = cos(ofDegToRad(halfDegree)) * _lineLength;
endPoint[i].y = sin(ofDegToRad(halfDegree)) * _lineLength;
endPoint[i].z = -i*_zSpace + (number*_zSpace)*0.5;
}
movingVector.resize(number);
box.set( 10 );
}
//--------------------------------------------------------------
void ofApp::update(){
for (int i=0; i<number; i++) {
movingVector[i] = startPoint[i]-endPoint[i];
}
movingFacetor = movingFacetor + 1;
}
//--------------------------------------------------------------
void ofApp::draw(){
cam.begin();
ofRotateZ(135);
ofRotateX(-15);
float _repeatF = ofMap(sin(ofDegToRad(movingFacetor)), -1, 1, -1, 0);
for (int i=0; i<number; i++) {
ofPushMatrix();
ofPushStyle();
ofNoFill();
ofSetColor(ofColor::fromHsb(0, 0, 255, 30) );
box.setPosition(movingVector[i].x*_repeatF, movingVector[i].y*_repeatF, startPoint[i].z);
box.draw();
box.drawWireframe();
ofPopStyle();
ofPopMatrix();
}
for (int i=0; i<number; i++) {
ofPushMatrix();
ofPushStyle();
ofSetColor(ofColor::fromHsb(0, 0, 255, 120) );
ofLine(startPoint[i].x, startPoint[i].y, startPoint[i].z, endPoint[i].x, endPoint[i].y, endPoint[i].z);
ofPopStyle();
ofPopMatrix();
}
for (int i=0; i<number-1; i++) {
ofPushMatrix();
ofPushStyle();
ofSetColor(ofColor::fromHsb(0, 0, 255, 255) );
ofLine(endPoint[i].x, endPoint[i].y, endPoint[i].z, endPoint[i+1].x, endPoint[i+1].y, endPoint[i+1].z);
ofLine(startPoint[i].x, startPoint[i].y, startPoint[i].z, startPoint[i+1].x, startPoint[i+1].y, startPoint[i+1].z);
ofPopStyle();
ofPopMatrix();
}
for (int i=0; i<number; i++) {
ofPushMatrix();
ofPushStyle();
ofSetColor(ofColor::fromHsb(0, 0, 255, 120) );
ofLine(endPoint[i].x, endPoint[i].y, endPoint[i].z, endPoint[i].x, 0, endPoint[i].z);
ofPopStyle();
ofPopMatrix();
}
for (int i=0; i<number-1; i++) {
ofPushMatrix();
ofPushStyle();
ofSetColor(ofColor::fromHsb(0, 0, 255, 255) );
ofLine(endPoint[i].x, 0, endPoint[i].z, endPoint[i+1].x, 0, endPoint[i+1].z);
ofPopStyle();
ofPopMatrix();
}
cam.end();
}
//--------------------------------------------------------------
void ofApp::keyPressed(int key){
if (key=='f') {
fullScreen = !fullScreen;
ofSetFullscreen(fullScreen);
}
}
//--------------------------------------------------------------
void ofApp::keyReleased(int key){
}
//--------------------------------------------------------------
void ofApp::mouseMoved(int x, int y ){
}
//--------------------------------------------------------------
void ofApp::mouseDragged(int x, int y, int button){
}
//--------------------------------------------------------------
void ofApp::mousePressed(int x, int y, int button){
}
//--------------------------------------------------------------
void ofApp::mouseReleased(int x, int y, int button){
}
//--------------------------------------------------------------
void ofApp::windowResized(int w, int h){
}
//--------------------------------------------------------------
void ofApp::gotMessage(ofMessage msg){
}
//--------------------------------------------------------------
void ofApp::dragEvent(ofDragInfo dragInfo){
}
#include "ofMain.h"
#include "ofApp.h"
//========================================================================
int main( ){
ofSetupOpenGL(1024,768,OF_WINDOW); // <-------- setup the GL context
// this kicks off the running of my app
// can be OF_WINDOW or OF_FULLSCREEN
// pass in width and height too:
ofRunApp(new ofApp());
}