カテゴリー別アーカイブ: memo

ポインタ渡しと参照渡し

openFrameworksで使用するC++言語の仕様に関して、

  • ポインタ渡しの場合は、呼び出し側が引数として、アドレスを渡す必要がある。
  • 参照渡しの場合は、呼び出し側が引数として、ままオブジェクトを渡す。
ポインタ渡しのコード

FuncA(int *p)
{
*p = 2;
}

参照渡しのコード

FuncB(int &p)
{
// 参照=エイリアスなので、中身(値)は変更出来るが、アドレスは変更できない
p = 10;
}

void main()
{
int a = 1;
int* pa = &a;

// アドレスを渡す
FuncA(pa);

// まま変数を渡す
FuncB(a);
}

以上で、問題なし。あえて言うなら、参照は単なるエイリアスなので、渡した引数のアドレスは変更できない事に注意する。

そして問題は次。ロベールのC++を読んでいて、下記のソースが出てくる。

1
2
3
4
funcB( int*& pa )
{
// pa は、ポインタの参照です。
}
ポインタの参照とはポインタのエイリアスにあたる。この関数を呼ぶ場合はfuncBの引数には、ポインタを与える。

で、結局

int *pa;
funcB(pa);
引数にポインタ    =ポインタを渡す
引数にポインタの参照 =ポインタを渡す
と、両パターンとも、ポインタを渡していることに代わりはない。
が、2のパターンでは、ポインタの参照(エイリアス)を渡しているので、

関数内で、渡したポインタの値(=アドレス)を変更する事が出来る。
でも関数内では、ポインタ(=アドレス)の変更は可能だが、関数処理が終了したら、呼び出す前のポインタ(アドレス)をさしたままとなる。

openFramewoksのオフィシャル記事は良記事。

撮影機材基本

外で撮影業務を行う際に、まず最初に気を付けた方が良い事がある。以下に列記する。

 

撮影

・ホワイトバランスは必ず取る。真っ白のカード。
・露光は多めに。できるだけ光を取る。
・視点の移動は遅いと感じるくらいで十分。再生速度はポスト処理で。
・オートフォーカスは使わない。
・大きめに撮影し、小さめの画角を使う。
・基本は定点固定、三脚必須。

 

編集

・エフェクトや最終処理は編集段階に。
・目の錯覚を使う。近くの物から遠くの背景にフォーカスが変われば意識もそちらに動く。

 

ハード

・カメラはレンズ次第である。考慮に入れたボディを選択すべき。例えば、Canon 5D Mark2 / LUMIX GH4 などが挙げられる。

Road to Botter

◆Anaconda経由のPython環境設定◆
Homebrew:「Mac OS Xオペレーティングシステム上でソフトウェアの導入を単純化するパッケージ管理システムのひとつである」

pyenv:様々なバージョンのPythonを管理するツール。導入することで,Python v2系とv3系など,複数のバージョンの切り替えが容易になる。

Anaconda: Python本体に加え,科学計算やデータ分析などに使えるライブラリがセットで入っているパッケージ。

AnacondaはPythonの管理に適した開発環境。Homebrew経由ではなく、pyenv経由でインストールをして、Pythonのバージョン管理をすべき。MacデフォルトのPython2系ではなく、Anacondaでインストールをした3系を利用するためには、Terminalで
pyenv global anaconda3-2.5.0
を実行することで、python –version で3系が指定される。
参考)http://qiita.com/oct_itmt/items/2d066801a7464a676994

◆Hubotを利用したBotの構造と環境設定◆
構造は、”Slack”⇄”Hubot on Heroku”⇄”色々なAPI”を採用。

Hubotを利用するにあたっては、node.js、redisが必要。
さらに、(sudo) npm install -g yo generator-hubot
にてyoコマンドとgenerator-hubotもインストール。
設定の工程概要はコチラから
http://qiita.com/yuzushioh/items/ba5bfe0899f744b56860

Botデプロイ用のHerokuのインストール、設定はコチラから
http://qiita.com/Arashi/items/b2f2e01259238235e187

jitterでgl系のグラフィックをsyphonで送信するとき

jitterでgl系のグラフィックをsyphonで送信するとき、

jit.gl.asyncreadで描画したものをsyphonserverに送るものの、解像度も下がるし、画角も小さくなる。

どうやらsyphonは、テクスチャのマトリクスしか送受信ができないようで、jitterからはjit.gl.slab/textureを最終のアウトプットとして用意する必要がありそう。
jit.gl. objects communication with syphon

  • jit.gl.texture @name “NAME” を配置。
  • jit.gl.render へ to_texture “TEXTURE” メッセージを送る。jit.gl.texture に最終画像をレンダリング。
  • jit_gl_texture の第1インレットからjit.gl.syphonserver へテクスチャマトリクスを送る。

によってgl系のグラフィック映像がSyphonで送れる。

Tangible User Interface


火で魅せるのはPARTYで見る機会がありそう。

Tangible Media Group

タンジブルインターフェースとは、本来触れることのできない情報を直接触れることができるようにしたコントローラーのことを言う。

 

タンジブルの経緯

ユーザーインタフェースとして、コンピュータと人間との接点として、従来の言葉から、声や画像や映像が新たなコントローラーとして研究が進んでいるが、無いなら作ってしまえという原点の発想である。その「無いなら」という点は、複数の人が一つのインターフェースで同時に作業に参加することなどがあり、その点、このタンジブルを解決方法を提示している。

 

インタフェースのこれから

現存する物をインタフェースに、異なる情報を加えることで新たな発想を見つけ出したり、人間の感じる体験を軸に物の色や象形を変えたり、データを送って人間の行動や思考を洞察したりと、可能性は幅広い。エンタテイメントやゲームの力で垣根が低くなり浸透するとあらゆる物が連動することも出来るかもしれない。怖い世の中だ。

ofxGui

ヘッダファイル
まずは、パネルのセットアップ

ofxPanel gui;

次に、設定するUIのパラメータ設定

設定 : ofParameter <型> 変数
型はint,float,bool,string,ofColor,ofVec2f
ex) ofParameter radius;

設定 : ofxButton 変数
ボタンON/OFFの設置

ソースファイル
まずは、setup()内で各パラメータセットアップ

型に合わせた初期値を。
ex)
gui.add(filled.set(“bFill”, true));
gui.add(radius.set( “radius”, DEFAULT, MIN, MAX ));
イベントハンドラを利用することも可能。
ex)
circleResolution.addListener(this, &ofApp::circleResolutionChanged);

次に、draw()内で表示

ex)
gui.draw();

拡張アドオンとしては、ofxParamEdit – GitHubが有り。

プロジェクトを作るときはパラメータのGUI調整パネルは必須。

FRAMED*2.0

中村勇吾氏とWilliam Lai氏が率いるFRMがデジタルアート、デジタルアプリケーションを空間に設置できるインテリア・デバイスFRAMED*2.0を発表、KickStarterで30万ドル以上集める。

オンラインのコンテンツはオンラインのコンテンツに潰される歴史を見ると、ハードウェアとマーケットを一体にして作ることはとても強い事だと思う。モーションセンサーとジェスチャー認識も付いているし。操作はタッチスクリーンではなく、iPhoneやAndroidのアプリかジェスチャーコントロールとのこと。ハンドジェスチャーの精度はどの程度なんだろう。William Lai氏はTempleATSの創始者ってコトが趣深い。

via. Hi-Bit Magazine

Interface

ハードウェアを簡単にハックすることのできる電子ガジェットlittleBitsに、プログラミング作業をできるだけ省いた簡単な操作で実装することのできるモジュールcloudBitが加わった。
IoTの世界も操作性がどんどん直感的に変わっていくんだろうな。CUIがGUIになってる。テンポ早し。。

littlBits_SynthKit

littleBits Synth Kit

MIT石井裕氏の言葉にて。

世界は加速している。テクノロジーは1年で廃れる。アプリケーション(=ニーズ)は10年で置き換えられる。しかし本当の強いヴィジョンは100年を越えて生き続ける。そしてぼくらがいなくなった未来を照らしてくれる。これがテクノロジー、ニーズ、ヴィジョンの三角形です。