2010年12月25日土曜日

直感でAndroidアプリを作成するための備忘録

アンドロイド携帯を使い始めると、フィールドワークで役たつアプリを作りたくなってきます。しかし難しいプログラミングの事を考えると、その気もなくなってしまっていました。

しかし、お気軽にアプリを作成するための開発環境「App Inventor」がついに一般公開されました。つい最近までは"登録"→"数週間の申請期間"→"App Inventorの利用許可"と面倒でしたが、誰でも利用ができるようになったようです。

App Inventorの紹介動画


このApp Inventorは、Webアプリケーションで、googleのApp Inventorのページにログインして利用します。

App Inventorの画面


この画面では、アプリを動かすためのボタンやテキストボックスなどの操作部品、あるいは方位センサーやGPSなどの情報を得るための部品の中から、必要なものを選択して配置します。

実際の処理の手順や動作は、この画面の右上にある「Open the Block Editor」を押して現れるBlock Editorというアプリで作ります。

Block Editor

ブロックを組み合わせて処理を作っていきます。このスクリーンショットは、緯度経度と標高をリアルタイムで表示するアプリのものです。

作成した処理は、その場でUSBで接続した携帯で動かして、動作を確認することができます。英語ですが、あーでもないこーでもないと小一時間もいじっていれば、なんとなく使い方が分ってくるような。実機で動いたときは、ちょっと感動ものです。

【準備】
じつは、一般公開前から使っていたので、利用に際しての手続きはわかりません。が、多分Googleアカウントがあれば使えるんじゃないかとおもいます。ここらを参考にしてください。

それと必要なのはSunのJavaアプリを動かすためのJREをダウンロードしてインストール。ないとBlock Editorが動きません。

あとは実機の「設定-アプリケーション設定-開発」ですべてにチェックを入れておき、USBで接続することで、即、実機で動作確認ができるようになります。

Inventorでもいろいろなことが出来ますが、より凝ったアプリの開発にはプログラミングで対応することにもなります。また、実機がない場合でも、エミュレーションでの動作確認も可能なようです。こうした場合は別途準備するものがありますが、この話はよく分からないのでやめておきます。詳しくはこちらとかを御覧ください。

現時点ではベータ版だからかもしれないですが、どうやらソースコードにしてくれたり、バックグラウンドで動くようなアプリをつくれなかったりということらしいです。今後のバージョンアップに期待しています。

2010年12月24日金曜日

クロソイド曲線に並行な曲線はクロソイドではないことを示す

道路のカーブには、クロソイド曲線が用いられることが多いらしい。クロソイド曲線とは、直線から徐々にカーブ(曲率)がきつくなっていく曲線。じゃあ、クロソイドの道路に並行に走る道路はクロソイドなのか?ということを考える(ついでに久々にMathematicaとTeXを使ってみた)。

【クロソイド曲線を理解する】

クロソイド曲線を式で表すと、



ここで、
:曲率半径(カーブの一部を描くような円の半径)
:スタート位置からの曲線の長さ

つまり、に反比例して曲率半径が小さくなる(カーブが急になる)
の関係があるような曲線である。

では、この曲線をで表わしてみる。話を簡単にするために、の場合を考えてみる(無次元化)。



Wikipediaの「曲率」にもあるように、曲線長による2階微分ベクトルの大きさが曲率(曲率半径の逆数)なので、これをそのまま式で表すと、



結局この微分方程式の解は、





となる。絵にすると次のようになる。



【クロソイド曲線に並行な曲線を作る】

ここでいう「並行」とは、「同じ幅を保って」という意味。クロソイド曲線の法線方向に同じ距離だけ離れている曲線。

クロソイド曲線での法線ベクトルの各成分は、Lで2回微分することで得られる。






・・・説明が面倒になってきたので、結果を示す。
幅をとしたとき、クロソイド曲線に並行な曲線は、





となる。で絵にすると、

ついでにクロソイド曲線と重ねると、

【結局・・・】
見た目にもクロソイド曲線に並行な曲線はクロソイド曲線になってないです。

【ちなみに】
道路をイメージしているので、「平行」ではなく「並行」としています。

2010年12月23日木曜日

早回し再生動画を作成する

以前の記事「撮影した動画の高度な編集を試す」の続編です。

その後、ビデオのデータから日時を取り出すことを諦めて、手動で字幕に日時を埋め込むことに方針を変えました。その時のメモです。


【目的】
MOVファイルから以下のようなWMVファイルを作成する。

  • 撮影データに日時を入れる。
  • 撮影データの早回し再生動画(360倍速)に変換。
  • オープニング画面を入れる。

【処理手順】

  1. MOD(ビクター製ビデオの保存形式)をmp2に拡張子書き換え(フォーマットはmp2と同じ)。
  2. DGIndex.exe」でd2vファイルに変換。
  3.  撮影データ、水位などの情報、早回し再生、タイトルなどの処理を記述した、AviSynthスクリプト(*.avs)を作成する (変換した動画の確認には、「Area61」にaviファイルを読み込んで行う)。時刻テロップは、オリジナルファイルの更新日時とFPSなどから計算したタイミングに、適切な時刻を表示するスクリプトをエクセルで作成して表示。
  4. 上記avsファイルを「DVD Flick」で読み込み、DVD形式に変換する。ただし、AviSynthにはmpeg2デコードプラグイン(DGDecode.dll)を入れておく必要がある。
  5. 作成したVOBファイル(DVD形式のデータ)の拡張子をmpgに書き換え。
  6. Windows Media エンコーダ」でmpegからwmvへ変換する。