leap motion を用いた数学教材開発の例
DESCRIPTION
2014年9月24日(水) に行われた「数学ソフトウェアとフリードキュメント/19」 http://mathlibre.org/wiki/index.php?%E6%95%B0%E5%AD%A6%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%A8%E3%83%95%E3%83%AA%E3%83%BC%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%2F19 での発表資料です。TRANSCRIPT
![Page 1: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/1.jpg)
Leap Motion を用いた
数学教材開発の例
北䑓如法 (KITADAI, Yukinori) 広島大学
2014年9月24日(水) 数学ソフトウェアとフリードキュメント/19
![Page 2: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/2.jpg)
Leap Motion を用いた
数学教材開発の例
本日のメニュー
![Page 3: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/3.jpg)
Leap Motion とは
Leap Motion の使用方法
数学教材開発の例
今後?
本日のメニュー
![Page 4: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/4.jpg)
Leap Motionとは
![Page 5: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/5.jpg)
Leap Motion
Leap Motion http://commons.wikimedia.org/wiki/File:Lm_Logo.svg
![Page 6: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/6.jpg)
Leap Motion
• センサ
• 両手・手のひら・指
• 手や指の数・方向などが取れるPierre Lecourt Leap Motion https://www.flickr.com/photos/13815526@N02/8654537799/
![Page 8: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/8.jpg)
発売前に出た動画
• http://www.inc.com/30under30/nicole-marie-richardson/leap-motion-david-holz-michael-buckwald-2013.html
![Page 9: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/9.jpg)
Demo
![Page 10: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/10.jpg)
パソコンのUSBにつなぐ
![Page 11: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/11.jpg)
$99.99価格
![Page 13: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/13.jpg)
スペック• Leap Motion Controllerは、スマートな超小型軽量 (わずか全長80mm)デザイン。
• 1辺 60cm の立方体の中を認識
• 0.01mm の細かさで指の動きを
• 200 fps
![Page 14: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/14.jpg)
コア技術は創業者のD論
• Wikipediaに書いてあった。
• David Holz 氏
• (Ph.D., 数学, ノースカロライナ大学, 2008)
• (資金調達して2012年に発売)
![Page 15: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/15.jpg)
システム要件• AMD Phenom II 以上 or Intel Core i3以上,
2 GB RAM, USB 2.0 ポート
• Mac … OS X 10.7 Lion 以上
• Windows … 7, 8
• Linux … Ubuntu 12
![Page 16: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/16.jpg)
Leap Motion とは
Leap Motion の使用方法
数学教材開発の例
今後?
本日のメニュー
![Page 17: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/17.jpg)
Leap Motion とは
Leap Motion の使用方法
数学教材開発の例
今後?
本日のメニュー
![Page 18: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/18.jpg)
Leap Motionの使用方法
![Page 19: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/19.jpg)
使用法• アプリをダウンロードして使う
• Leap Motion App Store apps.leapmotion.com
• 自分でアプリを作る
• ↑楽しい
• SDK
![Page 20: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/20.jpg)
Leap Motion SDK
• Leap Motion SDKが公式に用意されている
• Objective-C, C# (Unity), JavaScript, C++, Java, Python
• JavaScriptはウェブブラウザですぐ動かせるのでお手軽
![Page 21: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/21.jpg)
Leap Motion SDK
• Software Development Kit
• https://developer.leapmotion.com
• 現在は version 1系と version 2系(ベータ)
• v2 で Skeletal Tracking というモデルに
• v2 は 2.1.4.22333 Beta (9月21日現在)
![Page 22: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/22.jpg)
どんなデータが取れる?
• Hand 手のひら位置・向き
• その手が左右どちらか (v2)
• 指の骨格の全部の位置・向き (v2)
• センサイメージ (Obj-CとJSはまだ)
![Page 23: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/23.jpg)
取れるデータ (続き)
• さらに高級な情報も
• pinch (つまむ), grab (つかむ), confidence (信頼度)
• 閉区間 [0,1] で
• Gesture
• Circle, swipe, key tap, screen tap
![Page 24: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/24.jpg)
取ったデータを
![Page 25: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/25.jpg)
自分のプログラムで
![Page 26: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/26.jpg)
煮るなり焼くなり
![Page 27: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/27.jpg)
例えばObjective-Cでは
(OS X (Mac)上 Xcodeで)
![Page 28: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/28.jpg)
Objective-CでLeap Motion
• SDKをプロジェクトに入れる。
![Page 29: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/29.jpg)
Objective-CでLeap Motion
Leapコントローラを初期化した後、 デリゲートメソッド - (void)onFrame:(NSNotification *)notification !が定期的に呼ばれて、その中で、frame から情報を得る。 !LeapController !LeapFrame *frame = [controller frame:0];
for (LeapHand *hand in frame.hands) { .. }
![Page 30: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/30.jpg)
JavaScriptはもっと手軽
• ウェブブラウザ上で使える
• HTML + JavaScript
• コンパイルが要らない
• Leap Motion のための JavaScript も CDN
があるので1行書くだけですぐ使える。
<script src=“http://js.leapmotion.com/leap-0.6.2.min.js"></script>!!あと node.js なら npm install leapjs -v0.6.2 でもOK
![Page 31: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/31.jpg)
JavaScript で Leap Motion
• Load LeapJS ! ! <script src="http://js.leapmotion.com/leap-0.6.2.min.js"></script>!!
• Create loop
Leap.loop({enableGestures: true}, function(frame) {! // ...!});!
• あとは frame からデータを取って煮るなり焼くなり
![Page 32: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/32.jpg)
使用方法(SDK)の概説終わり
![Page 33: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/33.jpg)
Leap Motion とは
Leap Motion の使用方法
数学教材開発の例
今後?
本日のメニュー
![Page 34: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/34.jpg)
Leap Motion とは
Leap Motion の使用方法
数学教材開発の例
今後?
本日のメニュー
![Page 35: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/35.jpg)
開発した数学教材の例
![Page 36: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/36.jpg)
ConeCutter
![Page 37: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/37.jpg)
円錐を平面で切ると
• 切り口に次の曲線が現れる (円錐曲線)
• 円・楕円・双曲線・放物線・2直線
• 射影幾何学の入門として扱った。Pbroks13 - Own work http://en.wikipedia.org/wiki/Conic_section#mediaviewer/File:Conic_sections_with_plane.svg
![Page 38: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/38.jpg)
「円錐を切ると」 と言われるましても…
![Page 39: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/39.jpg)
あまり実際に切ってみたことはないのではと…
![Page 40: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/40.jpg)
そこで
![Page 41: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/41.jpg)
ConeCutter
![Page 42: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/42.jpg)
➡「切ると」を体験する
![Page 43: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/43.jpg)
Demo
![Page 44: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/44.jpg)
ConeCutter• 数学体験教材
• 実際に手で切ってみることができて楽しいのではないか
• 手の角度で様々な断面が手に取るようにわかる(かどうかは要調査)
• 学生の反応はよい。興味関心上昇
• 今回は OS X 上で Objective-C + Scene Kit
で作成
![Page 45: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/45.jpg)
Leap Motion とは
Leap Motion の使用方法
数学教材開発の例
今後?
本日のメニュー
![Page 46: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/46.jpg)
Leap Motion とは
Leap Motion の使用方法
数学教材開発の例
今後?
本日のメニュー
![Page 47: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/47.jpg)
今後?
![Page 48: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/48.jpg)
最近のSDKの動き
![Page 49: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/49.jpg)
Oculus Riftと連携してVR (が推されているように見える)
https://developer.leapmotion.com/vr
![Page 50: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/50.jpg)
Oculus Rift?
![Page 51: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/51.jpg)
photo by Sebastian Stabinger
![Page 52: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/52.jpg)
Sergey Galyonkin from Kyiv, Ukraine - Orlovsky and Oculus Rift Uploaded by Yakiv Gluck
![Page 54: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/54.jpg)
Oculus Rift
• ヘッドマウントVRディスプレイ
• 両目立体視のできる
• (持っていないのでここにはないです)
• これで3D表示物体がそこにあるものを操作する感覚に
![Page 55: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/55.jpg)
Oculus Rift に Leap Motion
• 物理的に取り付ける (別売りアタッチメント $19.99)
![Page 56: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/56.jpg)
Oculus Rift に Leap Motion
• 物理的に取り付ける
• (別売りアタッチメント $19.99)
• Oculus Rift で見ている VR 画面の中を、Leap Motionにより手で触ることができる
![Page 57: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/57.jpg)
移植したいiPadアプリ: ARGraph
![Page 58: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/58.jpg)
ARGraph
• AR (拡張現実) で次を表示するiPadアプリ
• 2変数関数のグラフ
• 接線、接平面
• 極値・条件付き極値
• マクローリン近似
![Page 59: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/59.jpg)
ARGraph Demo
![Page 60: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/60.jpg)
これがLeap Motion +
Oculus Rift で作れたら面白そう! (希望)
![Page 61: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/61.jpg)
他の話題
![Page 62: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/62.jpg)
スマフォ・タブレットは?
![Page 63: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/63.jpg)
スマホにUSBポートが
なくて使えない!?
• Leap MotionはUSBポートにつなぐから
• 2014年後半には「Leap Motion」がスマホに搭載、3Dモーション検出技術はブレイクするか (1) 3Dモーションセンシングが2014年のホットトピックに (マイナビニュース) http://news.mynavi.jp/articles/2014/01/10/leapmotion/
![Page 64: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/64.jpg)
Leap Motionがスマホや
タブレットに?
• “今年2014年後半にはスマートフォンやタブレットなどモバイルデバイスへの搭載も進み、これまでにはないような新しい使い方が登場することになるかもしれない。” http://news.mynavi.jp/articles/2014/01/10/leapmotion/ 画像も引用
![Page 65: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/65.jpg)
ここまでご覧になり、
![Page 66: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/66.jpg)
アイディアを思いつかれた方も多いのではないで
しょうか!!
![Page 67: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/67.jpg)
アイディアをいただく コーナ
![Page 68: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/68.jpg)
【追記】会場で出たアイディア等
• (メモから追記をします)
• エアギターから音を鳴らす
• キネクトの違いは?
• シンデレラ? 1, 2, 3の指のジェスチャ?
• 円錐だけでなく直方体を切る
![Page 69: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/69.jpg)
会場で出たアイディア等(続き)
• ConeCutterをクイズ形式にする
• デザインのコースでも、こういう立体の断面を描くことはされている。そこでも使えるのでは
• ペンを使って書いているものを取得できないか (ノートになる)
• 認証用途に使えないか
![Page 70: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/70.jpg)
会場で出たアイディア等(続き)
• Leap Motion にキラーアプリがまだないという話も
• 医療に。手の動きの診断に使えないか
• 【追記終わり】
![Page 71: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/71.jpg)
まとめ
• Leap Motion を使って手の動きを数学的対象に伝える体験が出来る
• 手軽な 3D プログラミング (Scene Kit,
Unity, JS (ブラウザ),…) により楽しい体験型3次元教材ができるのではないか
![Page 72: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/72.jpg)
ありがとうございました! (この後APIなどのページ)
![Page 73: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/73.jpg)
付録Scene Kitメモ・Objective-CでのLeap Motion SDK
![Page 74: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/74.jpg)
3D表示に利用したフレームワーク: Scene Kit
![Page 75: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/75.jpg)
Scene Kit• OS X 用 3D のフレームワーク
• OpenGL をごりごり書かなくても楽に 3D
プログラミングができる
• OS X 10.8 Mountain Lion で登場
• iOS 8 で iOS にも搭載 (iOSデバイスにはLeap Motionが使えませんが)
![Page 76: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/76.jpg)
Scene Kit クラス• SCNScene シーン
• SCNNode ノードに子ノードをつなげていく
• SCNGeometry, SCNMaterial, SCNLight, SCNCamera, … などの便利オブジェクトあり
• constraint 便利
• 新クラス SCNAction (OS X Yosemite から) が追加されるなど着実に進化している。
![Page 77: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/77.jpg)
Scene Kit 情報
• WWDC 2012 (Session 504)
• 変態。スライドが Scene Kit で書いたアプリになっている。ソースも出ている。
![Page 78: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/78.jpg)
Objective-CでLeap Motionを扱う方法の概説
![Page 79: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/79.jpg)
Objective-CでLeap Motion
最初に LeapController のインスタンスを作りデリゲートに例えばselfを登録
!controller = [[LeapController alloc] init]; [controller addListener:self];
![Page 80: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/80.jpg)
Objective-CでLeap Motion
ジェスチャを利用したい場合はデリゲートメソッド onConnect: の中で
!- (void)onConnect:(NSNotification *)notification { NSLog(@"Connected"); LeapController *aController = (LeapController *)[notification object]; [aController enableGesture:LEAP_GESTURE_TYPE_CIRCLE enable:YES]; [aController enableGesture:LEAP_GESTURE_TYPE_KEY_TAP enable:YES]; [aController enableGesture:LEAP_GESTURE_TYPE_SCREEN_TAP enable:YES]; [aController enableGesture:LEAP_GESTURE_TYPE_SWIPE enable:YES]; } !としておく。
![Page 81: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/81.jpg)
Objective-CでLeap Motion
普段データを取るのは デリゲートメソッド - (void)onFrame:(NSNotification *)notification !の中で、 !LeapController *aController = (LeapController *)[notification object]; !LeapFrame *frame = [aController frame:0];
for (LeapHand *hand in frame.hands) { .. }
![Page 82: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/82.jpg)
Objective-CでLeap Motion
あとは煮るなり焼くなり !const LeapVector *normal = [hand palmNormal]; const LeapVector *direction = [hand direction]; LeapVector *pos = hand.palmPosition; ![direction pitch] [normal roll] [direction yaw] !LeapVector *vec = hand.palmVelocity;
![Page 83: Leap Motion を用いた数学教材開発の例](https://reader033.vdocuments.net/reader033/viewer/2022052412/557d6f94d8b42a7c638b4de5/html5/thumbnails/83.jpg)
Objective-CでLeap Motionジェスチャを取る場合 !NSArray *gestures = [frame gestures:nil]; for (LeapGesture *gesture in gestures) { switch (gesture.type) { case LEAP_GESTURE_TYPE_SWIPE: { NSLog(@“swipe!”); break; } case LEAP_GESTURE_TYPE_CIRCLE: { NSLog(@"circle!"); break; } default: break; } }