fortran66のブログ

fortran について書きます。

ARToolKit

Rutherford Scattering 2

散乱に関するラザフォードの公式では、クーロン場の符号(斥力・引力)に依らずに同じ角度依存性が得られるわけですが、それについて計算結果を見てみることにします。 対称性に鑑みて、散乱体を含む二次元平面で切った計算をすることにします。散乱ポテンシ…

Rutherford scattering

原子核の存在を示唆することになった、ラザフォードによるα粒子散乱実験の、モデル計算を試みます。(ゆくゆくは散乱ポテンシャルを変えて散乱断面積の理論値を散乱体の影を見て実感したいという、おぼろげな希望が背景にあります。)固定されたクーロン型の…

三次元ライフゲーム

コンウェイのライフゲームというものがあります。昔、マイコン上でよく遊ばれていたものです。あれは2次元でのものでしたが、OpenGL があるのでせっかくだから三次元でやってみることにしました。結論から言うと、生命発生・維持・死亡のバランスが難しく、…

ARToolKit で影をつける。その2

以前の結果が間違っていたので訂正します。 http://d.hatena.ne.jp/fortran66/20090214 glutSolidCube を用いると、座標原点が動かされるのか、影を作る射影行列が正しく働かないようです。 そこで glVertex3f を用いて描画するようにしました。 射影面の法…

ARToolKit でローレンツ・アトラクターに影をつける。

OpenGL の範囲内で ARToolKit の像に影を付けることを目標とします。適当にググったところ、以下のページに行き当たりました。簡潔な説明で非常に参考になります。単純な幾何学での導出がされていて理解しやすいです。実際のプログラム例もあって助かりまし…

[Fortran2003]ARToolKit で Lorenz attractor

しばらくぶりに、ARToolKitをいじってみます。 ローレンツ・アトラクターは複雑な三次元図形なので、ARToolKit で任意方向から眺め回せれば愉快かなとふと思う。去年作ったプログラムの描画部分を数行ばかり変えることで実現できるはず。アトラクター部分は…

MODULE m_bitmap IMPLICIT NONE INTEGER, PARAMETER :: DWORD = 4, LONG = 4, WORD = 2, kBYTE = 1 TYPE :: T_BITMAPINFOHEADER SEQUENCE integer(DWORD) biSize ! knowns DWORD integer(LONG) biWidth ! knowns LONG integer(LONG) biHeight ! knowns LONG …

メモリーリークがあったので少し修正。とりあえず、ARToolKit 中のサンプルプログラム SimpleTest を Intel Visual Fortran で書き直すことが出来ました。Intel Visual Fortran (Ver.10.1.021) は、Fortran2003 の規格を一部先取りしていて、C 言語との相互…

ARToolKit 中のサンプル SimpleTest の方がより基本的なプログラムのようなので、こちらをいじることにします。mainLoop 中での描画ルーチン draw を Fortran で記述したルーチンに置き換えます。 サンプルを少し書き換えて、立方体の上にワイヤーフレームの…

Intel Visual Fortran と ARToolKit を LINK 出来ました。とりあえず、最も簡単な方法として、Fortran 側は OpenGL での図形描画のみを行うこととして、描画サブルーチンを C 側のメインルーチンから呼ぶことにします。Fortran のサブルーチン。 SUBROUTINE …