SlideShare a Scribd company logo
1 of 45
Download to read offline
‣
‣


‣


‣
‣

‣
‣
‣
‣



    setup( )



    update( )



    draw( )
‣
‣



    setup( )



    update( )



    draw( )
‣
‣



    setup( )



    update( )



    draw( )
‣
‣



    setup( )



    update( )



    draw( )
‣
‣



    setup( )



    update( )



    draw( )
‣
‣
‣
‣


‣
‣


‣
‣

‣
‣

#pragma once

#include "ofMain.h"

class testApp : public ofBaseApp{
!
public:
! void setup();
! void update();
! void draw();
!
! ofVec2f pos; //                   (   )
};
‣

#pragma once

#include "ofMain.h"

class testApp : public ofBaseApp{
!
public:
! void setup();
! void update();
! void draw();
!
! ofVec2f pos; //                   (   )
};
     setup, update, draw
‣

#include "testApp.h"

void testApp::setup(){
! ofSetFrameRate(60);!    //         60   (fps)
!   ofBackgroundHex(0x000000); //
!   //
!   pos.x = ofGetWidth()/2;
!   pos.y = ofGetHeight()/2;
}

void testApp::update(){
! //
!   pos.x += 4.0; //pos.x = pos.x + 3.0
!   pos.y += 3.0; //pos.y = pos.y + 4.0
}

void testApp::draw(){
! ofSetHexColor(0x3399ff); //
!   ofCircle(pos.x, pos.y, 20);!    //
}
‣

#include "testApp.h"

void testApp::setup(){
! ofSetFrameRate(60);!    //         60   (fps)
!   ofBackgroundHex(0x000000); //
!   //
!   pos.x = ofGetWidth()/2;
!   pos.y = ofGetHeight()/2;
}

void testApp::update(){
! //
!   pos.x += 4.0; //pos.x = pos.x + 3.0
!   pos.y += 3.0; //pos.y = pos.y + 4.0
}

void testApp::draw(){
! ofSetHexColor(0x3399ff); //
!   ofCircle(pos.x, pos.y, 20);!    //
}
‣
‣
 ‣
                ofGetWidth()
           0




ofGetHeight()
‣


‣
‣


‣
‣

‣
‣


‣
‣
‣


‣

if (   ) {


}
‣

if (pos.x > ofGetWidth()) {pos.x = 0;}   //
if (pos.x < 0) {pos.x = ofGetWidth();}   //
if (pos.y > ofGetHeight()) {pos.y = 0;} //
if (pos.y < 0) {pos.y = ofGetHeight();} //
‣

#include "testApp.h"

void testApp::setup(){
! ofSetFrameRate(60);
! ofBackgroundHex(0x000000);
! pos.x = ofGetWidth()/2;
! pos.y = ofGetHeight()/2;
}

void testApp::update(){
! pos.x += 4.0;
! pos.y += 3.0;
! if (pos.x > ofGetWidth()) {pos.x = 0;}     //
!   if (pos.x < 0) {pos.x = ofGetWidth();}   //
!   if (pos.y > ofGetHeight()) {pos.y = 0;} //
!   if (pos.y < 0) {pos.y = ofGetHeight();} //
}

void testApp::draw(){
! ofSetHexColor(0x3399ff);
! ofCircle(pos.x, pos.y, 20);
}
‣
‣



‣
‣
‣
‣




    (0, 0)
‣
‣




    (0, 0)
‣


‣
‣
‣


‣
‣
‣
‣

#pragma once

#include "ofMain.h"

class testApp : public ofBaseApp{
!
public:
! void setup();
! void update();
! void draw();
!
! float angle; //
};
‣
#include "testApp.h"

void testApp::setup(){
! ofSetFrameRate(60);!    //        60     (fps)
!   ofBackgroundHex(0x000000); //
!   //
!   ofSetRectMode(OF_RECTMODE_CENTER);
}

void testApp::update(){
! angle += 10; //
}

void testApp::draw(){
! //
!   ofTranslate(ofGetWidth()/2, ofGetHeight()/2);
!   ofRotateZ(angle); //
!   //
!   ofSetHexColor(0x3399ff);
!   ofRect(0, 0, 200, 200);
}
‣
‣


‣
‣
‣
‣
‣

#pragma once

#include "ofMain.h"

class testApp : public ofBaseApp{
!
public:
! void setup();
! void update();
! void draw();
!
! float angle; //
};
‣
#include "testApp.h"

void testApp::setup(){
! ofSetFrameRate(60);!    //        60       (fps)
!   ofSetVerticalSync(true); //
!   ofBackgroundHex(0x000000); //
!   ofEnableBlendMode(OF_BLENDMODE_ADD);//
}

void testApp::update(){
! angle += 10; //
}
‣
void testApp::draw(){
! //
!   ofTranslate(ofGetWidth()/2, ofGetHeight()/2);
!   ofRotateZ(angle); //

!   ofPushMatrix(); //
!
!   //   1
!   ofSetHexColor(0xff0000);
!   ofCircle(80, 0, 100);
!   ofRotateZ(120); //
!   //   2
!   ofSetHexColor(0x00ff00);
!   ofCircle(80, 0, 100);
!   ofRotateZ(120); //
!   //   3
!   ofSetHexColor(0x0000ff);
!   ofCircle(80, 0, 100);
!
!   ofPopMatrix(); //
}
‣
‣



‣


‣
‣
#include "testApp.h"

void testApp::setup(){
! ofSetFrameRate(60);!    //        60       (fps)
!   ofSetVerticalSync(true); //
!   ofBackgroundHex(0x000000); //
!   ofEnableBlendMode(OF_BLENDMODE_ADD);//
!   ofSetCircleResolution(64); //
}

void testApp::update(){
! angle += mouseY / 4.0; //         Y
}
‣
void testApp::draw(){
! //
!   ofTranslate(ofGetWidth()/2, ofGetHeight()/2);
!   ofRotateZ(angle); //

!   ofPushMatrix(); //
!
!   //   1
!   ofSetHexColor(0xff0000);
!   ofCircle(mouseX / 3.0, 0, 300 - mouseX / 6.0);
!   ofRotateZ(120); //
!   //   2
!   ofSetHexColor(0x00ff00);
!   ofCircle(mouseX / 3.0, 0, 300 - mouseX / 6.0);
!   ofRotateZ(120); //
!   //   3
!   ofSetHexColor(0x0000ff);
!   ofCircle(mouseX / 3.0, 0, 300 - mouseX / 6.0);
!
!   ofPopMatrix(); //
}
‣
‣


‣
‣
‣
‣
‣
void testApp::draw(){
! //
!   ofTranslate(ofGetWidth()/2, ofGetHeight()/2);

!   ofRotateX(mouseY);
!   ofRotateZ(angle);

!   ofPushMatrix();

!   ofSetHexColor(0xff0000);
!   ofCircle(mouseX / 3.0, 0, 300 - mouseX / 6.0);
!   ofRotateZ(120);
!   ofSetHexColor(0x00ff00);
!   ofCircle(mouseX / 3.0, 0, 300 - mouseX / 6.0);
!   ofRotateZ(120);
!   ofSetHexColor(0x0000ff);
!   ofCircle(mouseX / 3.0, 0, 300 - mouseX / 6.0);
!
!   ofPopMatrix();
}
‣
‣
‣


‣
‣


‣

‣

More Related Content

What's hot

OpenFOAMの壁関数
OpenFOAMの壁関数OpenFOAMの壁関数
OpenFOAMの壁関数Fumiya Nozaki
 
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくるデジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくるAtsushi Tadokoro
 
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGLMedia Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGLAtsushi Tadokoro
 
Limited Gradient Schemes in OpenFOAM
Limited Gradient Schemes in OpenFOAMLimited Gradient Schemes in OpenFOAM
Limited Gradient Schemes in OpenFOAMFumiya Nozaki
 
Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方Yasutaka Kawamoto
 
Boundary Conditions in OpenFOAM
Boundary Conditions in OpenFOAMBoundary Conditions in OpenFOAM
Boundary Conditions in OpenFOAMFumiya Nozaki
 
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Hiro H.
 
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法MITSUNARI Shigeo
 
Design by contractとホーア論理
Design by contractとホーア論理Design by contractとホーア論理
Design by contractとホーア論理Takuya Matsunaga
 
Turbulence Models in OpenFOAM
Turbulence Models in OpenFOAMTurbulence Models in OpenFOAM
Turbulence Models in OpenFOAMFumiya Nozaki
 
関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐりKazuyuki TAKASE
 
プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例sohta
 
Media Art II 2013 第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCv
Media Art II 2013  第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCvMedia Art II 2013  第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCv
Media Art II 2013 第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCvAtsushi Tadokoro
 
OpenFOAM LES乱流モデルカスタマイズ
OpenFOAM LES乱流モデルカスタマイズOpenFOAM LES乱流モデルカスタマイズ
OpenFOAM LES乱流モデルカスタマイズmmer547
 
【材料力学】仮想仕事の原理 最小ポテンシャルエネルギーの原理 (II-07 2018)
【材料力学】仮想仕事の原理 最小ポテンシャルエネルギーの原理  (II-07 2018)【材料力学】仮想仕事の原理 最小ポテンシャルエネルギーの原理  (II-07 2018)
【材料力学】仮想仕事の原理 最小ポテンシャルエネルギーの原理 (II-07 2018)Kazuhiro Suga
 
何もないところから数を作る
何もないところから数を作る何もないところから数を作る
何もないところから数を作るTaketo Sano
 
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-Fumiya Nozaki
 
【解説】 一般逆行列
【解説】 一般逆行列【解説】 一般逆行列
【解説】 一般逆行列Kenjiro Sugimoto
 
ParaviewでのParticle Tracerを用いた可視化
ParaviewでのParticle Tracerを用いた可視化ParaviewでのParticle Tracerを用いた可視化
ParaviewでのParticle Tracerを用いた可視化takuyayamamoto1800
 

What's hot (20)

OpenFOAMの壁関数
OpenFOAMの壁関数OpenFOAMの壁関数
OpenFOAMの壁関数
 
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくるデジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
 
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGLMedia Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
 
Limited Gradient Schemes in OpenFOAM
Limited Gradient Schemes in OpenFOAMLimited Gradient Schemes in OpenFOAM
Limited Gradient Schemes in OpenFOAM
 
Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方
 
Boundary Conditions in OpenFOAM
Boundary Conditions in OpenFOAMBoundary Conditions in OpenFOAM
Boundary Conditions in OpenFOAM
 
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
 
SQLite の暗号化
SQLite の暗号化SQLite の暗号化
SQLite の暗号化
 
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
 
Design by contractとホーア論理
Design by contractとホーア論理Design by contractとホーア論理
Design by contractとホーア論理
 
Turbulence Models in OpenFOAM
Turbulence Models in OpenFOAMTurbulence Models in OpenFOAM
Turbulence Models in OpenFOAM
 
関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり
 
プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例
 
Media Art II 2013 第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCv
Media Art II 2013  第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCvMedia Art II 2013  第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCv
Media Art II 2013 第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCv
 
OpenFOAM LES乱流モデルカスタマイズ
OpenFOAM LES乱流モデルカスタマイズOpenFOAM LES乱流モデルカスタマイズ
OpenFOAM LES乱流モデルカスタマイズ
 
【材料力学】仮想仕事の原理 最小ポテンシャルエネルギーの原理 (II-07 2018)
【材料力学】仮想仕事の原理 最小ポテンシャルエネルギーの原理  (II-07 2018)【材料力学】仮想仕事の原理 最小ポテンシャルエネルギーの原理  (II-07 2018)
【材料力学】仮想仕事の原理 最小ポテンシャルエネルギーの原理 (II-07 2018)
 
何もないところから数を作る
何もないところから数を作る何もないところから数を作る
何もないところから数を作る
 
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-
OpenFOAM -回転領域を含む流体計算 (Rotating Geometry)-
 
【解説】 一般逆行列
【解説】 一般逆行列【解説】 一般逆行列
【解説】 一般逆行列
 
ParaviewでのParticle Tracerを用いた可視化
ParaviewでのParticle Tracerを用いた可視化ParaviewでのParticle Tracerを用いた可視化
ParaviewでのParticle Tracerを用いた可視化
 

More from Atsushi Tadokoro

「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望Atsushi Tadokoro
 
プログラム初級講座 - メディア芸術をはじめよう
プログラム初級講座 - メディア芸術をはじめようプログラム初級講座 - メディア芸術をはじめよう
プログラム初級講座 - メディア芸術をはじめようAtsushi Tadokoro
 
Interactive Music II ProcessingとSuperColliderの連携 -2
Interactive Music II ProcessingとSuperColliderの連携 -2Interactive Music II ProcessingとSuperColliderの連携 -2
Interactive Music II ProcessingとSuperColliderの連携 -2Atsushi Tadokoro
 
coma Creators session vol.2
coma Creators session vol.2coma Creators session vol.2
coma Creators session vol.2Atsushi Tadokoro
 
Interactive Music II ProcessingとSuperColliderの連携1
Interactive Music II ProcessingとSuperColliderの連携1Interactive Music II ProcessingとSuperColliderの連携1
Interactive Music II ProcessingとSuperColliderの連携1Atsushi Tadokoro
 
Interactive Music II Processingによるアニメーション
Interactive Music II ProcessingによるアニメーションInteractive Music II Processingによるアニメーション
Interactive Music II ProcessingによるアニメーションAtsushi Tadokoro
 
Interactive Music II Processing基本
Interactive Music II Processing基本Interactive Music II Processing基本
Interactive Music II Processing基本Atsushi Tadokoro
 
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携Atsushi Tadokoro
 
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks  アプリ間の通信とタンジブルなインターフェイス Media Art II openFrameworks  アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス Atsushi Tadokoro
 
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)Atsushi Tadokoro
 
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描くiTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描くAtsushi Tadokoro
 
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリメディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリAtsushi Tadokoro
 
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使う
芸術情報演習デザイン(Web)  第8回: CSSフレームワークを使う芸術情報演習デザイン(Web)  第8回: CSSフレームワークを使う
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使うAtsushi Tadokoro
 
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2Atsushi Tadokoro
 
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得Atsushi Tadokoro
 
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Webデザイン 第10回:HTML5実践 Three.jsで3DプログラミングWebデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Webデザイン 第10回:HTML5実践 Three.jsで3DプログラミングAtsushi Tadokoro
 
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1Atsushi Tadokoro
 
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画するiTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画するAtsushi Tadokoro
 
Interactive Music II SuperCollider実習 オリジナルの楽器を作ろう!
Interactive Music II SuperCollider実習  オリジナルの楽器を作ろう!Interactive Music II SuperCollider実習  オリジナルの楽器を作ろう!
Interactive Music II SuperCollider実習 オリジナルの楽器を作ろう!Atsushi Tadokoro
 

More from Atsushi Tadokoro (20)

「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
 
プログラム初級講座 - メディア芸術をはじめよう
プログラム初級講座 - メディア芸術をはじめようプログラム初級講座 - メディア芸術をはじめよう
プログラム初級講座 - メディア芸術をはじめよう
 
Interactive Music II ProcessingとSuperColliderの連携 -2
Interactive Music II ProcessingとSuperColliderの連携 -2Interactive Music II ProcessingとSuperColliderの連携 -2
Interactive Music II ProcessingとSuperColliderの連携 -2
 
coma Creators session vol.2
coma Creators session vol.2coma Creators session vol.2
coma Creators session vol.2
 
Interactive Music II ProcessingとSuperColliderの連携1
Interactive Music II ProcessingとSuperColliderの連携1Interactive Music II ProcessingとSuperColliderの連携1
Interactive Music II ProcessingとSuperColliderの連携1
 
Interactive Music II Processingによるアニメーション
Interactive Music II ProcessingによるアニメーションInteractive Music II Processingによるアニメーション
Interactive Music II Processingによるアニメーション
 
Interactive Music II Processing基本
Interactive Music II Processing基本Interactive Music II Processing基本
Interactive Music II Processing基本
 
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
 
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks  アプリ間の通信とタンジブルなインターフェイス Media Art II openFrameworks  アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
 
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
 
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描くiTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
 
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリメディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
 
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使う
芸術情報演習デザイン(Web)  第8回: CSSフレームワークを使う芸術情報演習デザイン(Web)  第8回: CSSフレームワークを使う
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使う
 
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
 
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
 
Tamabi media131118
Tamabi media131118Tamabi media131118
Tamabi media131118
 
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Webデザイン 第10回:HTML5実践 Three.jsで3DプログラミングWebデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
 
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
 
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画するiTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
 
Interactive Music II SuperCollider実習 オリジナルの楽器を作ろう!
Interactive Music II SuperCollider実習  オリジナルの楽器を作ろう!Interactive Music II SuperCollider実習  オリジナルの楽器を作ろう!
Interactive Music II SuperCollider実習 オリジナルの楽器を作ろう!
 

openFrameworks基礎 動きを生みだす、アニメーション入門 - 芸大グラフィックスプログラミング演習B

  • 1.
  • 3.
  • 4. ‣ ‣ setup( ) update( ) draw( )
  • 5. ‣ ‣ setup( ) update( ) draw( )
  • 6. ‣ ‣ setup( ) update( ) draw( )
  • 7. ‣ ‣ setup( ) update( ) draw( )
  • 8. ‣ ‣ setup( ) update( ) draw( )
  • 10.
  • 12. ‣ #pragma once #include "ofMain.h" class testApp : public ofBaseApp{ ! public: ! void setup(); ! void update(); ! void draw(); ! ! ofVec2f pos; // ( ) };
  • 13. ‣ #pragma once #include "ofMain.h" class testApp : public ofBaseApp{ ! public: ! void setup(); ! void update(); ! void draw(); ! ! ofVec2f pos; // ( ) }; setup, update, draw
  • 14. ‣ #include "testApp.h" void testApp::setup(){ ! ofSetFrameRate(60);! // 60 (fps) ! ofBackgroundHex(0x000000); // ! // ! pos.x = ofGetWidth()/2; ! pos.y = ofGetHeight()/2; } void testApp::update(){ ! // ! pos.x += 4.0; //pos.x = pos.x + 3.0 ! pos.y += 3.0; //pos.y = pos.y + 4.0 } void testApp::draw(){ ! ofSetHexColor(0x3399ff); // ! ofCircle(pos.x, pos.y, 20);! // }
  • 15. ‣ #include "testApp.h" void testApp::setup(){ ! ofSetFrameRate(60);! // 60 (fps) ! ofBackgroundHex(0x000000); // ! // ! pos.x = ofGetWidth()/2; ! pos.y = ofGetHeight()/2; } void testApp::update(){ ! // ! pos.x += 4.0; //pos.x = pos.x + 3.0 ! pos.y += 3.0; //pos.y = pos.y + 4.0 } void testApp::draw(){ ! ofSetHexColor(0x3399ff); // ! ofCircle(pos.x, pos.y, 20);! // }
  • 16.
  • 17. ‣ ‣ ofGetWidth() 0 ofGetHeight()
  • 19. ‣ ‣ if ( ) { }
  • 20. ‣ if (pos.x > ofGetWidth()) {pos.x = 0;} // if (pos.x < 0) {pos.x = ofGetWidth();} // if (pos.y > ofGetHeight()) {pos.y = 0;} // if (pos.y < 0) {pos.y = ofGetHeight();} //
  • 21. ‣ #include "testApp.h" void testApp::setup(){ ! ofSetFrameRate(60); ! ofBackgroundHex(0x000000); ! pos.x = ofGetWidth()/2; ! pos.y = ofGetHeight()/2; } void testApp::update(){ ! pos.x += 4.0; ! pos.y += 3.0; ! if (pos.x > ofGetWidth()) {pos.x = 0;} // ! if (pos.x < 0) {pos.x = ofGetWidth();} // ! if (pos.y > ofGetHeight()) {pos.y = 0;} // ! if (pos.y < 0) {pos.y = ofGetHeight();} // } void testApp::draw(){ ! ofSetHexColor(0x3399ff); ! ofCircle(pos.x, pos.y, 20); }
  • 22.
  • 23.
  • 25. ‣ ‣ (0, 0)
  • 26. ‣ ‣ (0, 0)
  • 29. ‣ #pragma once #include "ofMain.h" class testApp : public ofBaseApp{ ! public: ! void setup(); ! void update(); ! void draw(); ! ! float angle; // };
  • 30. ‣ #include "testApp.h" void testApp::setup(){ ! ofSetFrameRate(60);! // 60 (fps) ! ofBackgroundHex(0x000000); // ! // ! ofSetRectMode(OF_RECTMODE_CENTER); } void testApp::update(){ ! angle += 10; // } void testApp::draw(){ ! // ! ofTranslate(ofGetWidth()/2, ofGetHeight()/2); ! ofRotateZ(angle); // ! // ! ofSetHexColor(0x3399ff); ! ofRect(0, 0, 200, 200); }
  • 31.
  • 33. ‣ #pragma once #include "ofMain.h" class testApp : public ofBaseApp{ ! public: ! void setup(); ! void update(); ! void draw(); ! ! float angle; // };
  • 34. ‣ #include "testApp.h" void testApp::setup(){ ! ofSetFrameRate(60);! // 60 (fps) ! ofSetVerticalSync(true); // ! ofBackgroundHex(0x000000); // ! ofEnableBlendMode(OF_BLENDMODE_ADD);// } void testApp::update(){ ! angle += 10; // }
  • 35. ‣ void testApp::draw(){ ! // ! ofTranslate(ofGetWidth()/2, ofGetHeight()/2); ! ofRotateZ(angle); // ! ofPushMatrix(); // ! ! // 1 ! ofSetHexColor(0xff0000); ! ofCircle(80, 0, 100); ! ofRotateZ(120); // ! // 2 ! ofSetHexColor(0x00ff00); ! ofCircle(80, 0, 100); ! ofRotateZ(120); // ! // 3 ! ofSetHexColor(0x0000ff); ! ofCircle(80, 0, 100); ! ! ofPopMatrix(); // }
  • 36.
  • 38. ‣ #include "testApp.h" void testApp::setup(){ ! ofSetFrameRate(60);! // 60 (fps) ! ofSetVerticalSync(true); // ! ofBackgroundHex(0x000000); // ! ofEnableBlendMode(OF_BLENDMODE_ADD);// ! ofSetCircleResolution(64); // } void testApp::update(){ ! angle += mouseY / 4.0; // Y }
  • 39. ‣ void testApp::draw(){ ! // ! ofTranslate(ofGetWidth()/2, ofGetHeight()/2); ! ofRotateZ(angle); // ! ofPushMatrix(); // ! ! // 1 ! ofSetHexColor(0xff0000); ! ofCircle(mouseX / 3.0, 0, 300 - mouseX / 6.0); ! ofRotateZ(120); // ! // 2 ! ofSetHexColor(0x00ff00); ! ofCircle(mouseX / 3.0, 0, 300 - mouseX / 6.0); ! ofRotateZ(120); // ! // 3 ! ofSetHexColor(0x0000ff); ! ofCircle(mouseX / 3.0, 0, 300 - mouseX / 6.0); ! ! ofPopMatrix(); // }
  • 40.
  • 43. ‣ void testApp::draw(){ ! // ! ofTranslate(ofGetWidth()/2, ofGetHeight()/2); ! ofRotateX(mouseY); ! ofRotateZ(angle); ! ofPushMatrix(); ! ofSetHexColor(0xff0000); ! ofCircle(mouseX / 3.0, 0, 300 - mouseX / 6.0); ! ofRotateZ(120); ! ofSetHexColor(0x00ff00); ! ofCircle(mouseX / 3.0, 0, 300 - mouseX / 6.0); ! ofRotateZ(120); ! ofSetHexColor(0x0000ff); ! ofCircle(mouseX / 3.0, 0, 300 - mouseX / 6.0); ! ! ofPopMatrix(); }
  • 44.