「がんばれない」けど「がんばりたい」

ITエンジニアの仕事のこと。AI、機械学習、ディープラーニング。地頭力。車のこと。

回転 オブジェクトを起点に… |3Dプログラミング整理

前回とほぼ同じだが、 回転の起点をポリゴンの中心やポリゴンのある位置に設定して回転する。 ちなみにここでは、ofRotateを使用した場合を示す。

x軸回転 https://vimeo.com/74014511

y軸回転 https://vimeo.com/74014577

z軸回転 https://vimeo.com/74014608

float degree = 0.0;

//--------------------------------------------------------------
void testApp::setup(){
    
    ofSetFrameRate(60);
    
}

//--------------------------------------------------------------
void testApp::update(){
    degree += 5.0;
}

//--------------------------------------------------------------
void testApp::draw(){
    
    ofBackground(0, 0, 0);

    ofPushMatrix();
    {
        ofSetLineWidth(10.0);
        
        //  x
        ofSetColor(255, 0, 0);
        ofLine(0.0, 0.0, ofGetWidth(), 0);
        
        //  y
        ofSetColor(0, 255, 0);
        ofLine(0.0, 0.0, 0.0, ofGetHeight());
        
        //  z
        ofSetColor(0, 0, 255);
        ofLine(0, 0, -30.0, 0, 0, 30.0);
    }
    ofPopMatrix();

    
    ofVec3f _center = ofVec3f( ofGetWidth()/2, ofGetHeight()/2, 0.0);

    ofPushMatrix();
    {
        ofSetColor(255);
        ofNoFill();
        ofSetLineWidth(0.5);
        ofTranslate(_center);
        ofRotateZ(degree);
        ofSphere(60.0);
    }
    ofPopMatrix();
}