コメを噛め

コメを噛め

rerofumi の電子工作メモ

hatena bookmark

otk_base_ss1
ちと ruby で計算した結果をグラフィカルに確認したくなったので、.NET の OpenGL バインドである OpenTKIronRuby からまともに使ってみることにした。
ライブラリを使うだけなのでさくっと画面が表示成功。あとは OpenGL ベースで好き勝手できるようになったところで成果をお裾分け。

IronRuby を用意するという特殊性はあるものの、上の画面の様な三角形が簡単に表示できるのです。今実験しているのが平面の図形計算だからテストは平面な三角形だけれども、3DCG で表示されていて、マウスドラッグでくるくる回せる様になっている。

Download: ironruby_gl_fw_01.zip (5kb)

IronRuby と OpenTK は .NET 環境で動くので、MONO を使って MacOSX 上で動作させることも可能。
otk_macosx_shot
Linux は試していない。

IronRuby上で OpenTK を使う手順として codepad に置いてあった「OpenTKのサンプルをIronRubyに移植してみた」を参考にさせてもらった。ここに情報がないので作者が不明なのだけれども、あれくまさんが作ったということでいいのかな?
あと OpenTK のサンプル(C#)とドキュメントを見てた。
IronRuby + OpenTK というか OpenTK 自体情報が少ないのでこんなソースでも何かの役に立つんじゃないかと思う。

ここ最近、なにかアプリケーションが作りたいとき何で構築するのが最善かなあと考えていた。マルチプラットフォームでOpenGLも使えてというと Java が一番近いのだけれども、Linux も考えると簡単かなあと疑問に思ったり、そもそもで Java はなんか最近離れてしまったのでやりたくなかったり。
できれば ruby で楽しく作ってお気軽にマルチプラットフォームできると良いのだけれども、ruby は GUI フレームワークが弱すぎるという難点が。
色々考えているうちに MONO がかなり良くなってきているので、.NET framework で作ればマルチプラットフォーム化が容易だというあたりに落ち着いてきた。Windows forms で作っておけばたくさんの環境でだいたい動作させる事ができる。
調べてみるとシリアルポートも含まれているので、環境毎にドライバーを用意しなくても同一コードでシリアルにアクセスもできる。マイコン工作系にとってかなり心強いところ。
.NET framework で OpenGL を扱えるバインディングには OpenTK が登場してなかなか評判も良い。
でそんな GUI 周りをそのまま利用できる ruby 環境として IronRuby があるわけだ。(Python派には IronPython)
試してみたら MONO で IronRuby を使うのもそんなに難しくなかった。特にこだわりがあるので無い限り、スタンダードな ruby そのままな形でプログラミングできるし GUI も作成することが可能だ。

そんなこんなで個人的な好みにマッチングしている IronRuby + OpenTK で、ちょこっとしたアプリを作成できるのではないかという結論に至ったのである。
今回のソースはその第一歩。

Leave a Reply