not good but great

プログラミング、アート、映画・本の感想について書きます。

openframeworksでofNoiseを試す

ofNoiseを使ってみる

demo


再描画処理をしないで、円を描き続けていると、線を描いているように見えます。円の位置をofNoiseを使って、少し規則性のあるランダムを用いて円を描いています。

code

実は上の動画のコードとは少し違いますが、やってることは大体同じなので載せてみます。

#include "ofApp.h"

float x;
float xNoise;
float yNoise;
//--------------------------------------------------------------
void ofApp::setup(){
    ofBackground(255);
    x = 0.0;
    xNoise = 0.0;
    yNoise = 0.0;
}

変数の初期化をします。

void ofApp::update(){
    if(x > ofGetWidth()){
        x = 0;
    }
    x += 1;
    xNoise += 0.1;
    yNoise += 0.1;
}

ノイズを増加させます。

void ofApp::draw(){
    ofSetColor(0, 0, 0);
    ofCircle(x, ofGetHeight() / 2 + ofNoise(yNoise) * 50, 10);
}

ofNoiseにノイズを渡して、乱数を生成しています。

円をゆらゆらさせて動かす


code

今度は再描画処理をしているので、円が移動しているように見えます。円の数を増やしてみました。

radius = ofRandom(velocity.x * 1.2,velocity.x * 3.5);

円の半径をx方向の速度を使って決めています。これにより遅い円は小さい半径となり、遠近感が出たように感じます。