2012-11-03 51 views
0

我(字面上)想用Kinect的NUI來捕捉框架元素。假設我的網格(或畫布)上有一個橢圓,我應該可以使用我的程序選擇一個橢圓。用Kinect拾取框架元素(Like Ellipse or Rectangle)

爲了做到這一點,我認爲我必須確定元素的確切位置,例如Unity中的Transform.Position,但我在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> 

所以我的問題是關於在網格上找到該元素。有一個光標或代表用戶手的任何元素都不是問題。但在那之後,我必須檢測到我的光標和這些元素之間的碰撞,以及那個困擾我的部分。像ElementHover或ElementPicked這樣的事件也會有所幫助,但我想我必須自己寫這樣的東西。

順便說一下,這是一個「工程教育軟件」項目,旨在開發虛擬環境,用於昂貴或危險實驗等工程練習。

回答

2

在SDK v1.6工具包中提供的來自Microsoft的幾個示例給出瞭如何確定屏幕上對象的位置以及如何使用代表玩家手的自定義光標與它們進行交互的示例。

我建議查看幾個提供的示例,以便清楚瞭解交互如何工作。該工具包位於與Kinect for Windows SDK相同的位置。

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

ShapeGame

此示例產生從所述窗口的頂部落下隨機的形狀(它們中的一些橢圓)。這些形狀與Kinect產生的骨架相互作用。你會看到如何獲得窗口中元素的位置,以及與骨架的關係。

BasicInteractions

這個例子做幾件事情是使用的。它顯示瞭如何基於手的位置生成自定義遊標。它還創建了一個可以連接到Kinect事件(例如手進入,懸停和退出事件)的ContentControl。它是以這種方式構建的,因爲它可以放入任何東西 - 無論是單個橢圓還是複雜的佈局。

+0

我一直在嘗試使這個機器的工作,但我不知道這些新的下載甚至存在。謝謝你。 – 3yanlis1bos