Feeds:
投稿
コメント

Archive for 2012年8月

ねむいので少しだけで終えます

今話題(?)のKinectにはKinect SDKがありWindowsにつないでKinectを動かすことができます
これをWPFアプリケーションに実装することを考えてみましょう

今回犠牲になってもらうアプリケーションは廃れたAyatterなる何かです
こいつにはゲームパッドで操作できるという点があるのでKinectでキャプチャしてジェスチャできればすぐなので今回の犠牲対象にはうってつけです

Kinectの初期化だのはたくさん出ていますのでそちらを参考に。
今回はスケルトンデータを読み込めば十分でしょう

さてさて、そもそもジェスチャするといっても全部自分で定義するの?って話ですがWPFにはInkCanvasがありますね。
InkCanvasではマウスやタッチの動きをキャプチャして線を描画したりそのままマウスジェスチャにも使えます
こんないいやつはいない!これにKinectで描画させよう! ってやったのが運のつきでした。1日無駄になりますので気をつけましょう
InkCanvasにはStrokesプロパティがあってこれにStrokeを追加すればいいのかというとそういうわけでもなくジェスチャがおこなわれません。ほかに描画メソッドがあるわけでもないのでつまるところInkCanvasにコードからジェスチャさせるのは無理!というわけです

ところでInkCanvasは実際どうジェスチャを認識しているか、という話です。実はGestureRecognizer [System.Windows.Ink namespace]を使っています。このクラス自体は普通のクラスでこれのRecognizeメソッドもPublicです。これを使えばInkCanvasに頭を悩ませなくてもStrokeCollectionに放り込んで認識させれば完璧です

ここからどうするかというと
・Kinectで取得したスケルトンから座標を取得する
・取得した座標をPointのIEnumerableに突っ込む
・StylusPointCollectionを作ってStrokeに変換
とやれば晴れて認識できるわけです

ここまでしかやってないのでこの辺で

Read Full Post »