2016年12月24日土曜日

OP cameraParentingExample

cameraParentingExample

https://github.com/openframeworks/openFrameworks/tree/master/examples/3d/cameraParentingExample


オブジェクトをlookしてカメラからの描画サンプル。
カメラの使い方が理解できるかもですが、やはり processing より複雑だな。

http://d.hatena.ne.jp/kougaku-navi/20160104/p1

3Dの回転について


processing の場合
http://r-dimension.xsrv.jp/classes_j/2_interactive3d/

こちらに書いてあるとおり、

https://github.com/shiffman/The-Nature-of-Code-Examples/tree/master/introduction/Exercise_I_10_NoiseLandscape

これを例に

translate()

2Dを画面全体で移動させる。


2016年12月23日金曜日

Processing でクラスを考える。よくわからんぞ。


Circle c1, c2;    //ColorCircleクラスのインスタンスを宣言

//Circleクラスの宣言
class Circle {
  float x, y, eSize, velocity;


↑こういう宣言があるとする。

違うのは、クラスの宣言と、インスタンスの宣言ちゅうことやね。
データなどをためる変数型などある。

このへんを知ってないと何が?なんだかわからなくなる。
そもそもだが、すでに作られているクラス=パッケージ化したものもある。

色情報を格納するデータ型 color がある。
画像も格納するデータ型 PImage などある。


Processingのときは Javaで書いているはずだが、上記のデータ型などのルールが
Java全部に適応されるのかは?? わかりませんw

C++のデータ型はこちら
https://www37.atwiki.jp/visualstudio/pages/38.html
みてみると colorなどないから、Processing の際の特有なものかな?

====
クラス名は自由に

2016年12月18日日曜日

地図データ


shape file = 共通データはこれみたい。

JPGIS形式 ってなんですか?
KML ってなんですか?

JPGIS → SHAPE → KML 


GeoJSON

https://github.com/moxuse/ofxGeoJSON 

あった、やっとみつけた。それっぽいの。

https://github.com/tangrams/ofVectorTile
こちらはベクター

初心者のアルゴリズム ?


やりたいことはあるが、
プログラムでどう表現していいか?わからない。

初期にぶつかるのは for

まず、円をだそうと思った。なにげなく思うのは、
円 を X、Yの場所へ記述  なってことは思いつくと思う。

→ ofCircle(500, 300, 120)
 円を書く呪文がある。
http://www.myu.ac.jp/~xkozima/lab/ofTutorial2.html
http://yoppa.org/ma2_10/1739.html


http://yoppa.org/ma2_10/1638.html
こちらを参考に構造をみていく。
======
//円の座標を記録するための、クラス変数
ofPoint pos;

of~~ というは型の宣言。
クラスと型はどうちがうのかな?

    //座標を初期化
    pos.x = 0;
    pos.y = 0;
pos というのは宣言され、実在するが、
それに、 . どっとをつけて、文字をいれたら、 オブジェクトがふえるのかな? ← これがインスタンス? ちがうな。

あと、setupで宣言しなくても、draw で 宣言 して使うこともできるみたい。

void testApp::draw(){
    //円を描く点をランダムに設定
    ofPoint pos;
    pos.set(ofRandom(0, ofGetWidth()), ofRandom(0, ofGetHeight()));
     
    //円の半径もランダムに
    float radius = ofRandom(1, 10);
     
    //色もランダムに
    ofSetColor(ofRandom(0, 255), ofRandom(0, 255), ofRandom(0, 255));
     
    //設定した場所と半径で、円を描く
    ofCircle(pos.x, pos.y, radius);
}


これのすごいのは、
オブジェクトを宣言しました。そもそもですが、
変数の型のことをクラス というとのことC++では。
型は流派、 いれるものが固定化されている決まり。

ofPoint というクラスは入れるもの、入るものが決まっているはず。。。。

ほら。

ほら。
なんか詳しく書いてありますが、混乱してきた。

わけが、わからなくてしているのはこちら。
ofPoint pos;
pos.set(ofRandom(0, ofGetWidth()), ofRandom(0, ofGetHeight()));


まず、最初の ofPoint pos;  変数宣言なのでよしとしましょう。 次です。

pos.set(ofRandom(0, ofGetWidth()), ofRandom(0, ofGetHeight()));

http://yoppa.org/ma2_10/2032.html
pos  ドッドセット  なんでw? pos のままだとだめでした。  set をしないと


http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10132459665
ここにかいてあった。

typedef ofVec3f ofPoint; と定義されてあるとのこと。
→ ofVec3f こいつに変換されるとのことだが、、、。

ofVec2fは、ofVec3f と別物。数字みたら想像できるかもだが、2は2次元、3は3次元。

※ちなみに、typedef は 型に新しい名前をつけるやつのようです。typedef ofVec3f ofPoint;  こちらリネームされたちゅうことやね。。。

はぁ ながかった。。

遠回りしましたが、
http://openframeworks.cc/documentation/math/ofVec3f/#show_set


呼び出して、設定する機能?のようです。 
この場合はファンクションと呼ばない?
クラス・メソッド?? むずかしいなぁ。









FBO VBO



Framebuffer Object(FBO)
Vertex Buffer Object (VBO)


OP基礎


app.h  こちらはヘッダファイル
部品を宣言

app.cpp こちらは実装ファイル
何をするか?記述。
http://openframeworks.jp/tutorials/firstSteps/002_openFrameworks_for_processing_users.html
宣言ファイルである hの中身。


変数をひとまとまり = 構造体
typedef struct Item {
 int code;  /* 商品コード */
 int name;  /* 商品名 */
 int price;  /* 価格  */
} ITEM, *LPITEM ;
これの他にC構造体っていう 違うのあるみたいだが、後日。


setup 準備
update 更新
draw 描画


Ga4のtest

これを押すとリンクするよ 参考にした記事はこちら