2008-11-01から1ヶ月間の記事一覧

TinyJSONを使ってみる

Boost.Spiritを使ったJSONパーサーであるTinyJSON http://blog.beef.de/projects/tinyjson/ を試してみた。 サンプルコードに乏しいのとサイトのUsageにある traverse関数の宣言が間違っていてコンパイルが通らないという問題により 無駄に敷居が上がってい…

最近のはまりポイント

c++

vcで作ってからgccでコンパイルするときにはまった。 その1 関数の実引数が一時変数の時は、仮引数のreferenceはconstでないといけない #include <iostream> #include <string> void func(std::string &text) { std::cout << text << std::endl; } int main(int argc, char **</string></iostream>…

GILの練習

GILの練習に、勉強中のboostをできるだけ濫用したサンプルを作ってみた。 しかし、GILの学習曲線はまるで地を這うようだ。 白い画像を生成してから、 乱数で座標を生成して点を打ちます。 #include <iostream> #include <boost/random.hpp> #include <boost/gil/gil_all.hpp> #include <boost/gil/extension/io/bmp_dynamic_io.hpp> #include <boost/timer.hpp> #include <boost/lexical_cast.hpp> #inc</boost/lexical_cast.hpp></boost/timer.hpp></boost/gil/extension/io/bmp_dynamic_io.hpp></boost/gil/gil_all.hpp></boost/random.hpp></iostream>…

Boost.Pythonをやってみた

http://boost.cppll.jp/BDTJ_1_29/libs/python/doc/tutorial/doc/building_hello_world.html をやってみた。 環境はWindowsXP VC8(ExpressEdtion) boost-1.37.0に添付されているサンプルはそのままでは動かず結構苦労した。 過去のバージョンが放置されてい…

glFrustumの解読

追記: 2010/3/24 書いたときの理解が足りないため意味不明なところがある。 少し書き直した。 http://gunload.web.fc2.com/opengl/tutorial/glfrustum.html glFrustumが何をしているかというと View座標(視点を原点として視線方向がz軸の負の方向を向いてい…

glFrustumとgluPerspective

OpenGLの透視投影の指定はhttp://www.opengl.org/sdk/docs/man/xhtml/glFrustum.xml (glFrustum)で行う。 glFrustum(left, right, bottom, top, near, far) もうひとつこれの簡易版としてhttp://www.opengl.org/sdk/docs/man/xhtml/gluPerspective.xml (gluP…

あらためて行列の動作を確認

たまに使うと細かいことをいろいろ忘れていて難渋するので確認しておくことにした。まず、前提として座標系は右手系。 (DirectXは逆だそうな)行列は列優先(row-major)で左から行列を、右から列ベクトルをかけると考える。 (DirectXは逆だそうな)さらに行列が…

gtkglextmmのコンパイル

gtk

レンダラーを作るに先立って簡単なビューワの作成を開始。 久しぶりにOpenGLであります。 今回、採用するGUIキットはgtkmm。 マイナーで情報が少ないのだが、APIがc++的に気に入ったのでこれでいきたい。 gtkmmでOpenGLを使うgtkglextmmはソースからビルドす…

vcに移植してみた

c++

erlangは一度お休みにして同じものをvc2005 express editionに移植して速度を測ってみた。 時間はcygwinのtimeで計測。 $ time release/cray tmp.bmp 200x200 sizeof(BITMAPFILEHEADER): 14 sizeof(BITMAPINFOHEADER): 40 release/cray 0.01s user 0.01s sys…

分散レイトレースベンチ改その2

一度に送る行数を変えられるようにして実験してみた。 結果は、遺憾ながら1行ずつ送ったときが最速という残念な結果に。 (xp1@192.168.0.10)25> timer:tc(dist_ray, start, ["tmp.bmp", 200, 1, 3, [node(), node(), 'xp2@192.168.0.11', 'osx@192.168.0.12'…