hirax.net::Keywords::「クラス」のブログ



2006-07-07[n年前へ]

「プログラミングスタイル」と「こころを喜ばせる科学」 

 from n年前へ.

A: 美人プログラムスタイルって、なんですか? G: 中身は別にして、眺めるだけで幸せになる  プログラムじゃ 。A: ははぁ、アルゴリズムやクラス構造などの  中身でなく、外見重視なんですね? G: 昔から「色白美人は、七難を隠す」というじゃろ。 A: え、つまり、バグが7個あると言うんですか?
科学は応用を通じて実生活に関わり、知的追求というこころの喜びにも関わる二面を持っています…多くの人に、こころを喜ばせる科学を楽しんでもらいたいですね。 H.Hirax, A.Kurotani

2007-08-28[n年前へ]

今更ながら…のRubyハマり 

 これまで、Perlでしていた作業をRubyに変えた。物忘れが激しいので、すでにPerlの文歩を忘れてしまった…ということもあるけれど、データ処理をすることが多い仕事では、Ruby(単にArrayクラスのおかげなのかもしれないが)の方が楽に感じるようになったからだ。
 ふと、気づいたことがある。なぜか、ある言語を勉強しようとして、他の言語がわかるようになったことが多いような気がする。Perlを勉強しようとして、始めて、Mathematica が少し理解できるようになった。WebMathematicaは、もちろん、eRbの理解を早めてくれた。そういえば、Photoshopのプログラミング・マクロ記述可能なプラグインを作ろうとして、Perlの作りやMatLabの作りがほんの少しだけ理解できるようになった気がする。

 暗い星を眺めようとする時、その星を見つめようとすると、その星は見えなくなる。網膜の感度分布のせいで、どうしてもそんな風になる。だから、暗い星を眺めようとするなら、その少し横を眺めなければいけない。何だか、少しそんな感じだ。

 ここ半年に覚えようとしたのは、WebMathematica, Ruby, Rails, Matlab という辺りだ。これらは、何に繋がっているんだろうか。

2007-12-29[n年前へ]

Thinkpadユーザで作る「地震警報システム」 

地震ハザード・ステーション  何年か前から、気象庁の情報を元に地震情報をメールで送信するサービスが色々立ち上がっている。そういえば、前にThinkpadの加速度センサを使ったアプリケーションのネタ出しをした時、気象庁でなく自前の「地震警報システム」を作るのはどうか?というアイデアが出てきた。ハードディスク保護や向き検知を目的として、Thinkpadのように加速度センサが搭載されているデバイスで「○×ガル以上の加速度が検知されたら、サーバにその揺れ情報を送信するソフトウェア」を動かす。そういったデバイスが日本中(世界中)で動いていれば、自分たち自身が動かす「地震警報システム」ができるかも、というアイデアである。

 Thinkpad加速度センサ取得用C++クラスのようなものを使えば、簡単に「○×ガル以上の加速度が検知されたら、特定動作をさせるソフトウェア」を作ることができる。たとえば、試しに作った ThinkpadEarthquakeDetector.exeは一定以上の大きさの揺れが生じるとフォームの色が(10秒間だけ)変わるアプリケーションだ。このアプリケーションの場合、わかりやすく色を変えるだけだが、実際にはサーバに加速度・揺れ方向情報などを送れば良いだろう。

 サーバを立ち上げ、PCユーザからの情報をもとに、リアルタイムで全国の震度情報をリアルタイムでマッピングするサービスなど、簡単に作ることができそうだ。

2008-02-18[n年前へ]

新しいThinkpad にも対応した加速度センサ値取得プログラム 

 (新しいThinkpadにも対応したバージョンが「Thinkpad加速度センサ取得用C++クラスの手直しをしました」にあります)


 新しいThinkpad(T61,X61など)にも対応(しているはず)の「加速度センサ値取得プログラム」を作成しました。少し前に、Thinkpad T60pで加速度センサ値が取得できない(意訳)」とメールが来たことをきっかけに調べてみたところ「 X61 Tablet で加速度センサを使ったアプリが動かない件」というような情報がありました。そこで、ShockMgrデバイスを直接開くのでなく、Sensor.dll中の"ShockproofGetAccelerometerData"を使うようにAccelerometerのC++クラスを書き換えました(C++ クラス ソース)

 使い方はこれまでと同じように

Accelerometer anAccelerometer;
anAccelerometer.GetAccelerometerData();
std::cout << pAccelerometer.X << ", ";
std::cout << pAccelerometer.Y << "\n";
という具合になります。コマンドラインから傾斜(加速度)を取得するためのサンプルプログラムおよびソースも付けておきます。サンプルプログラムの使い方は、200msごとに100回計測を行う場合には、下記のようになります。 AccelerometerCommand.exe 200 100

 これまで作った三次元画像表示プログラムなどは、順次新しいバージョンに作り直し・入れ替えなおしていこうかと思います。

2008-02-20[n年前へ]

Wiiリモコンの加速度センサで姿勢検知 

 PC+加速度センサを使ったアプリケーションを作ろうとする場合、12インチでSXGA+程度の高解像度ディスプレイを備えたTabletPCを念頭に置いて作ることが多い。手に持つことができて、低解像度のデバイスでなく、姿勢検知センサを積んでいる…つまり、Lenovo(旧IBM) Thinkpad のX60Tか、ToshibaのPortegeという機種である。とはいえ、もちろん、その他のPCでも色々と位置・姿勢検知をして、それに応じた各種処理をして遊んでみたくなったりもする。

 そこで、Wiiのリモコンを手に入れた(ありがたいことにハイヨとくれた人がいた)。加速度センサや赤外線センサを積んだWiiリモコン、つまりは、センサの塊であるWiiリモコンを使えば色んなことができる。…というわけで、下に貼り付けたのは、WiinRemote.exeによるWiiリモコンのセンサ取得例である。

 こういったWiiリモコンを使った姿勢取得例のように、Wiiリモコンのセンサ取得APIを使うこともできる(もちろんThinkpadの加速度センサなどを使うことも出来る)汎用の加速度・姿勢検知用のクラスを作っておくことにしてみた。これで、Lenovo や Toshiba以外のPCでも使うことができるアプリケーションを汎用的に作る・使うことができるだろう。また、Thinkpadのような2軸加速度センサ搭載機よりも1軸多い3軸加速度(姿勢)を使うことで、色んな計算が楽になるかもしれない。

Wiiリモコン








■Powered by yagm.net