̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ IT ニュース&コラム 2013/ 5/ 6 通巻618号 ソフトウェアデザイン館 Sage Plaisir 21  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄                        News and Column  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄    指先の動きをスキャンしてレーザー照射表示する新UI 2013年 4月 3日、富士通研究所は、汎用のカメラを用いて高精度・高速 に実世界の物に対する手指の操作を検出する技術を開発し、レーザー照射 式の表示装置と組み合わせた次世代ユーザーインターフェース(UI)を 開発したと発表した。    手指をスキャンする装置は、Kinect や三次元スキャナー    が存在するが、Kinect は、手指を動かしたことによって    画面が変化するだけであり、三次元スキャナーは物体を    整形するだけであった。 レーザー照射式のキーボードも    売られているが、レーザー照射式の表示装置とスキャナー    を高精度・高速に連動させることで、次世代UIを開発する    ことに成功した。    タッチパネルの上ではなく、既存の本の上で指をスワイプ    することで、コピーする範囲を指定するデモを、下記の    リンクから映像を見ることができる。 この新UI は、現実のモノに対してレーザー照射で情報を付加して、その モノや仮想物を手指で操作するものであるから、アプリケーションとしては、 AR(拡張現実)を使ったアプリケーションに近いものになるだろうが、 AR よりも圧倒的に直感的となる。 レーザーの照射範囲が狭くても、 単純な矢印を投影するだけで使いものになるだろう。 その際、手指 ではなく照射物の位置や角度のスキャンの方がメインになるが、どれだけ リアルタイムにスキャンできるかが使いやすさに直結する。 また、GPS や コンパスとの連携も必要になるだろう。 現実のモノに対して情報を付加するタイプではないが、近未来を描いた映画 で見られるような、現実世界に投影したウィンドウを操作することが したいときは、プロジェクターと組み合わせることになる。その際、 東京駅に映像を映すプロジェクション・マッピングのように、 プロジェクターが投影する物体に対する位置座標をスキャンすることが できれば、新UIが気軽に利用できるようになるだろう。 ただ、多くのアプリケーションは、タブレット端末の中のバーチャル空間や AR で可能であるため、3D スクリーンのように、少しの違和感によって 敬遠されてブームに終わる可能性が高い分野であるのが残念だ。 参考リンク: http://blogs.itmedia.co.jp/tatsuhikoshibasaki/2013/05/post-c6eb.html http://pr.fujitsu.com/jp/news/2013/04/3.html * The others Last week watched News  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ◇ じゃあ、いつ撮るのか? 今でしょ! ニコニコ超会議2013 まとめレポート。 http://ascii.jp/elem/000/000/783/783927/ … 安倍総理や有名芸能人も参加。ネット選挙に向けて各党のブースも。 ◇ iOS版 Google Now でどんなことができるのか試してみた。 http://news.mynavi.jp/articles/2013/04/30/googlenow_review/index.html … 複数のアプリが連携するようなアプリで、Google が iPhone を乗っ取る。 ◇ 子ども向け1万4999円のタブレット。トイザらス MEEP! レビュー。 http://japan.cnet.com/mobile/35031600/ … 静電容量式より安い zForce 式タッチパネルを採用した本格的な機器。                      Snap Note 3 開発BLOG  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ [ キーワードをずらす分量を計算するプログラム - BM法(15) ] 前回は、SearchStringByBM_Class_allocateSkipArray_Sub 関数の最後で、 SkipArray 配列に値を格納していることを確認しました。 今回は、その SkipArray 配列にどのようなプログラムを使って値を 格納しているのかを説明します。 SkipArray 配列に格納されている値は、keyword をずらす分量です。 ずらす分量を検討するため、BM法(3)で説明した図を再掲載します。 1 1 1 1 1 1 1 1 1 1 position: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 text: a b c a b(c)a b a b c a b x a b c a b x ------------------------------------------------------ keyword: [0] a b c a b a keyword: [1] a b c a b a keyword: [2] a b c a b a keyword: [3] a b c a b a keyword: [4] a b c a b a keyword: [5] a b c a b a keyword: [6] a b c a b a position = 5 の位置にある text は c であり、その情報を活用して、 キーワードの中の文字 c が position = 5 の位置になるように、 ずらす分量は 3 であることを、BM法(3) で説明しました。 ちなみに、もし、position = 5 の位置にある text が b なら、 ずらす分量は 1 です。 ずらす分量が 4 でも、positino = 5 の位置に b はなるのですが、BM法(4) で説明した通り、すらず分量が小さい方 を採用します。 では、すらず分量をプログラムで計算できるようにするには、 どうしたらいいでしょうか。 まず、ずらす分量が 1 になるケースである、position = 5 の 位置にある text が b だった場合を考えてみましょう。 まずシンプルなケースで考え始めることは重要です。 position = 4 の位置にある b が、position = 5 の位置になるように ずらす分量が 1 であるということから、なんとなく 5 - 4 = 1 のような式が成り立つのではないかと予想できます。 では、別のケースで検証してみましょう。 position = 5 の位置にある text が c だった場合は、position = 2 の位置にある keyword の c (text の c ではないことに注意)が、position = 5 の位置になる ということです。 予想された式を計算してみると、5 - 2 = 3 ですから、 ずらす分量である 3 と合っていることが確認できました。 数学的に確認すると、5 - 2 = 3 の左辺と右辺の両方を +2 することで、 - 2 を移項すると、5 = 3 + 2 となり、左辺と右辺を入れ替えると、 3 + 2 = 5 となり、加法の交換法則により+の左と右は入れ替え可能 なので、2 + 3 = 5 となります。 これは、 (keyword の c の位置)+(ずらす分量)= (ずらした後の位置) という1次元ベクトルの加算の式になるので、数学的にも合っています。 プログラム上では、SearchStringByBM_Class_allocateSkipArray_Sub 関数の 最後の方にある下記の記述の右辺が該当します。 2,3,5のような小さい整数 の式ではなく、ポインターの式になっていますが、同じ意味です。 skip_array[ *p - min_character ] = keyword_last_pointer - p; p は、キーワードの中の文字を指しているポインターです。 for 文の パラメーターから分かります。 そして、*p は文字です。 つまり、p の位置にある文字 *p を skip_array 配列に入力すると、 ずらす分量(keyword_last_pointer - p)が出力されるように、設定して いるコードなのです。 min_character は、キーワードに含まれる最も文字コードが小さい文字の 文字コードです。 同じ関数の上の方で代入しています。 文字 *p から min_character を引くことで、配列番号([ ] の中)の 最小値が 0 になり、配列のサイズを小さくしています。 ソースコード(C言語)の全体は、以下からダウンロードできます。 Visual Studio の Express 版 for Desktop(無料)で試せます。 http://www.sage-p.com/b/searchstring.zip         ソフトウェアデザイン館 Sage Plaisir 21 について  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ホームページ  >>> http://www.sage-p.com/ メルマガ    >>> http://www.mag2.com/m/0000083983.html ブログ     >>> http://blog.livedoor.jp/sage_p/ ツイッター   >>> http://twitter.com/Ts_Neko ダウンロード  >>> http://www.sage-p.com/freesoft.htm サポート掲示板 >>> http://www.sage-p.com/kg_ban09/z6037C8.cgi 東日本大震災  >>> http://www.sage-p.com/saigai.html メール   >>> ts-neko◇sage-p.com ←◇を@に変えてください          緊急メールは件名に「うどんメール」を付けてください。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ このメルマガの登録・解除をするときは… >>> http://www.mag2.com/m/0000083983.htm  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ News & Column are composed by T's-Neko 2013  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄