Processing/AR_Planet01
をテンプレートにして作成
[
トップ
] [
新規
| |
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#topicpath
** 惑星上の落下運動をARで表現する [#z4a02a3a]
[[Processing>../]] と NyARToolkit を用いて、惑星上で物体...
*** 配布物と説明 [#nc8f67e7]
*** 開発(最新版) [#f5344561]
- 環境
-- Processing 2.2.1(Windows 32bit版)>https://processing.o...
-- [[NyARToolkit 2.1.0>https://github.com/nyatla/NyARTool...
-- マーカー は自作
~
~
- 準備・実行手順
++ Processing, NyARToolkit, カメラが使える環境を整える。
++ Processing を開いた上で、次項のプログラムを張り付けて...
++ マーカーのデータをダウンロードし、上記のプログラムが保...
++ マーカーを印刷する。
++ プログラムを実行し、カメラにマーカーを向けてみる。
~
~
- プログラム~
適当に作っているので、問題もあると思う。
//
// 地球、月、金星、火星、木星上での重力による運動
// Gravitational freefall motion on the Earth, Moon, Ma...
//
// 桜美林大学 森
// 2015-09-18 : パターンファイルを専用に作った。
// 2015-09-16
//
import jp.nyatla.nyar4psg.*; // the NyARToolkit Proce...
import processing.video.*; // the video library
public MultiMarker nya;
// Preparation for Camera ------------------------------...
String camPara = "camera_para.dat"; // カメラのパラメタ...
int arWidth = 640; // Windows の場合には Processing ...
int arHeight = 480;
public Capture cam;
// Preparation for Markers -----------------------------...
int numMarkers = 10; // 利用する AR...
float markersize = 80; // 印刷されたマー...
String[] patterns = {"EF.pat", "MF.pat", "VF.pat", "AF.p...
"ET.pat", "MT.pat", "VT.pat", "AT.p...
// Physical Conatants ----------------------------------...
public final float V0 = 2.0; // Initial velocity...
public final float V2 = sqrt(V0);
// 重力加速度 / Gravitational Acceleration ( in mm/ms^2 )
public final float GE = 9.807e-3; // 地球 / Earth
public final float GM = 1.622e-3; // 月 / Moon
public final float GV = 8.870e-3; // 金星 / Venus
public final float GA = 7.710e-3; // 火星 / Mars
public final float GJ = 23.120e-3; // 木星 / Jup...
// | 地 月 金 火 木| 地...
public final int[] inittime = { -1, -1, -1, -1, -1, -1...
public final float[] vx = { 0, 0, 0, 0, 0, V2...
public final float[] vy = { 0, 0, 0, 0, 0, V2...
public final float[] gr = { GE, GM, GV, GA, GJ, GE...
public final String[] plid = {"Earth Fall", "Moon Fal...
"Earth Throw","Moon Thr...
public final int BS = 10; // ボールのサイズ / ...
// -----------------------------------------------------...
void setup() {
// カメラの準備 / Camera Initialization
size(arWidth, arHeight, OPENGL);
cam = new Capture(this, arWidth, arHeight);
cam.start(); // キャプチャ開始 / start capture
noStroke(); // 図形の枠なし / no frames
// マーカー準備 / Initialization for AR
nya = new MultiMarker(this, arWidth, arHeight, camPara...
nya.setLostDelay(1); // 指定回数以上連続して認識でき...
for (int i=0; i<numMarkers; i++) {
nya.addARMarker(patterns[i], markersize); // マーカ...
}
}
// -----------------------------------------------------...
void draw() {
if( cam.available() ) { // カメラが動いて...
cam.read(); // 読み込み ...
nya.drawBackground(cam); // frustumを考慮した背景...
nya.detect(cam.get()); // マーカーの認識 ...
drawBalls(); // ボールの描出 ...
}
}
// -----------------------------------------------------...
void drawBalls() {
int etime = 0; // 経過時間 ...
float posx, posy; // ボールの位置 ...
nya.setARPerspective(); // Projection Mat...
for (int i=0; i<numMarkers; i++) { // マーカーの数だ...
if ((!nya.isExistMarker(i))) { // マーカー見失い...
inittime[i] = -1;
continue;
}
//-------------------------- 以下はマーカーが見つか...
setMatrix(nya.getMarkerMatrix(i)); // nya.getMarkerM...
fill(180); rect(-markersize/2, -markersize/2, marker...
fill( 0); textSize(10); rotateX(PI); text(plid[i], ...
if( vx[i] == 0 ){
translate( 0, markersize/2) ; // 上端...
}else{
translate( -markersize/2, -markersize/2) ; // 左下...
}
etime = millis() - inittime[i]; /...
if( etime < 1000 ){ etime = 0; }else{ etime -= 1000; }
if ( inittime[i] == -1 ){ inittime[i] = millis(); }/...
posx = vx[i] * etime; /...
posy = vy[i] * etime - gr[i] / 2 * etime * etime;
lights(); /...
fill(200,200,255); /...
translate( posx, posy, BS); sphere(BS); translate(-p...
if ( posx > 5e3 || posy > 5e3 || etime > 3000 ){ /...
inittime[i] = millis();
}
}
}
*** 開発(古い版) [#zdcdddcb]
- 環境
-- Processing 1.5.1
-- NyARToolkit 1.1.6
-- GSVideo 1.0
-- マーカー [[Utah大学>http://www.cs.utah.edu/gdc/project...
~
- プログラム~
[[Make のブログ>http://jp.makezine.com/blog/2012/02/how-t...
プログラムです。(&ref(OldProgram_for_FallingOnPlanets.pde...
現在の Processing 2.2.1, NyARToolkit for Processing 2.1.0...
終了行:
#topicpath
** 惑星上の落下運動をARで表現する [#z4a02a3a]
[[Processing>../]] と NyARToolkit を用いて、惑星上で物体...
*** 配布物と説明 [#nc8f67e7]
*** 開発(最新版) [#f5344561]
- 環境
-- Processing 2.2.1(Windows 32bit版)>https://processing.o...
-- [[NyARToolkit 2.1.0>https://github.com/nyatla/NyARTool...
-- マーカー は自作
~
~
- 準備・実行手順
++ Processing, NyARToolkit, カメラが使える環境を整える。
++ Processing を開いた上で、次項のプログラムを張り付けて...
++ マーカーのデータをダウンロードし、上記のプログラムが保...
++ マーカーを印刷する。
++ プログラムを実行し、カメラにマーカーを向けてみる。
~
~
- プログラム~
適当に作っているので、問題もあると思う。
//
// 地球、月、金星、火星、木星上での重力による運動
// Gravitational freefall motion on the Earth, Moon, Ma...
//
// 桜美林大学 森
// 2015-09-18 : パターンファイルを専用に作った。
// 2015-09-16
//
import jp.nyatla.nyar4psg.*; // the NyARToolkit Proce...
import processing.video.*; // the video library
public MultiMarker nya;
// Preparation for Camera ------------------------------...
String camPara = "camera_para.dat"; // カメラのパラメタ...
int arWidth = 640; // Windows の場合には Processing ...
int arHeight = 480;
public Capture cam;
// Preparation for Markers -----------------------------...
int numMarkers = 10; // 利用する AR...
float markersize = 80; // 印刷されたマー...
String[] patterns = {"EF.pat", "MF.pat", "VF.pat", "AF.p...
"ET.pat", "MT.pat", "VT.pat", "AT.p...
// Physical Conatants ----------------------------------...
public final float V0 = 2.0; // Initial velocity...
public final float V2 = sqrt(V0);
// 重力加速度 / Gravitational Acceleration ( in mm/ms^2 )
public final float GE = 9.807e-3; // 地球 / Earth
public final float GM = 1.622e-3; // 月 / Moon
public final float GV = 8.870e-3; // 金星 / Venus
public final float GA = 7.710e-3; // 火星 / Mars
public final float GJ = 23.120e-3; // 木星 / Jup...
// | 地 月 金 火 木| 地...
public final int[] inittime = { -1, -1, -1, -1, -1, -1...
public final float[] vx = { 0, 0, 0, 0, 0, V2...
public final float[] vy = { 0, 0, 0, 0, 0, V2...
public final float[] gr = { GE, GM, GV, GA, GJ, GE...
public final String[] plid = {"Earth Fall", "Moon Fal...
"Earth Throw","Moon Thr...
public final int BS = 10; // ボールのサイズ / ...
// -----------------------------------------------------...
void setup() {
// カメラの準備 / Camera Initialization
size(arWidth, arHeight, OPENGL);
cam = new Capture(this, arWidth, arHeight);
cam.start(); // キャプチャ開始 / start capture
noStroke(); // 図形の枠なし / no frames
// マーカー準備 / Initialization for AR
nya = new MultiMarker(this, arWidth, arHeight, camPara...
nya.setLostDelay(1); // 指定回数以上連続して認識でき...
for (int i=0; i<numMarkers; i++) {
nya.addARMarker(patterns[i], markersize); // マーカ...
}
}
// -----------------------------------------------------...
void draw() {
if( cam.available() ) { // カメラが動いて...
cam.read(); // 読み込み ...
nya.drawBackground(cam); // frustumを考慮した背景...
nya.detect(cam.get()); // マーカーの認識 ...
drawBalls(); // ボールの描出 ...
}
}
// -----------------------------------------------------...
void drawBalls() {
int etime = 0; // 経過時間 ...
float posx, posy; // ボールの位置 ...
nya.setARPerspective(); // Projection Mat...
for (int i=0; i<numMarkers; i++) { // マーカーの数だ...
if ((!nya.isExistMarker(i))) { // マーカー見失い...
inittime[i] = -1;
continue;
}
//-------------------------- 以下はマーカーが見つか...
setMatrix(nya.getMarkerMatrix(i)); // nya.getMarkerM...
fill(180); rect(-markersize/2, -markersize/2, marker...
fill( 0); textSize(10); rotateX(PI); text(plid[i], ...
if( vx[i] == 0 ){
translate( 0, markersize/2) ; // 上端...
}else{
translate( -markersize/2, -markersize/2) ; // 左下...
}
etime = millis() - inittime[i]; /...
if( etime < 1000 ){ etime = 0; }else{ etime -= 1000; }
if ( inittime[i] == -1 ){ inittime[i] = millis(); }/...
posx = vx[i] * etime; /...
posy = vy[i] * etime - gr[i] / 2 * etime * etime;
lights(); /...
fill(200,200,255); /...
translate( posx, posy, BS); sphere(BS); translate(-p...
if ( posx > 5e3 || posy > 5e3 || etime > 3000 ){ /...
inittime[i] = millis();
}
}
}
*** 開発(古い版) [#zdcdddcb]
- 環境
-- Processing 1.5.1
-- NyARToolkit 1.1.6
-- GSVideo 1.0
-- マーカー [[Utah大学>http://www.cs.utah.edu/gdc/project...
~
- プログラム~
[[Make のブログ>http://jp.makezine.com/blog/2012/02/how-t...
プログラムです。(&ref(OldProgram_for_FallingOnPlanets.pde...
現在の Processing 2.2.1, NyARToolkit for Processing 2.1.0...
ページ名: