0

私は (文字通り) Kinect の NUI を使用してフレームワーク要素をキャッチしたいと考えています。グリッド (またはキャンバス) に楕円があると仮定すると、プログラムを使用して楕円を選択できるはずです。

そのためにはTransform.Position、Unity のように要素の正確な位置を特定する必要があると考えたのですが、WPF ではそのようなものを見つけることができませんでした。

これが私のXAMLコードです。

<Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
    <my:KinectSensorChooser HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Name="kinectSensorChooser1" />
    <my:KinectColorViewer Stretch="Fill" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"  Name="kinectColorViewer1" Kinect="{Binding Path=Kinect, ElementName=kinectSensorChooser1}" />
    <Ellipse Height="114"  Name="ellipse1" Stroke="Black" Fill="Black" VerticalAlignment="Top" Width="120" />
</Grid>

だから私の質問は、グリッド上でその要素を見つけることです。Cursor またはユーザーの手を表す要素を持つことは問題ではありません。しかしその後、カーソルとこれらの要素との衝突を検出する必要があり、それが私を悩ませている部分です。ElementHover や ElementPicked などのイベントも役立ちますが、そのようなものを自分で作成する必要があると思います。

ちなみに、高価で危険な実験などの工学演習用の仮想環境を開発することを目的とした「工学教育ソフトウェア」プロジェクトについてです。

4

1 に答える 1

2

SDK v1.6 Toolkit で提供されている Microsoft のいくつかの例では、画面上のオブジェクトの位置を特定し、プレイヤーの手を表すカスタム カーソルを使用してオブジェクトと対話する方法の例を示しています。

インタラクションがどのように機能するかを明確に把握するために、提供されているいくつかの例を確認することをお勧めします。ツールキットは、Kinect for Windows SDK と同じ場所にあります。

http://www.microsoft.com/en-us/kinectforwindows/develop/developer-downloads.aspx

シェイプゲーム

この例では、ウィンドウの上部から落ちるランダムな形状 (一部は楕円) を生成します。これらの形状は、Kinect によって生成されたスケルトンと相互作用します。ウィンドウ内の要素の位置を取得する方法と、スケルトンとの関係について説明します。

基本的な相互作用

この例では、役に立ついくつかのことを行います。手の位置に基づいてカスタム カーソルを作成する方法を示します。ContentControlまた、Kinect イベント (ハンド エンター、ホバー、エグジット イベントなど) に接続できるも作成します。ContentControl単一の楕円であろうと、複雑なレイアウトであろうと、内部に何でも入れることができるため、このように構築されています。

于 2012-11-03T15:46:25.787 に答える