i(从字面上看)想使用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>
所以我的问题是在网格上找到该元素。拥有光标或代表用户手的任何元素不是问题。但是之后,我必须检测到我的光标与这些元素之间的碰撞以及困扰我的部分。诸如ElementHover或Element挑选的事件也将有所帮助,但我想我必须自己写类似的东西。
顺便说一句,这是关于一个"工程教育软件"项目,旨在开发虚拟环境,用于工程练习,例如昂贵或危险的实验。
SDK V1.6工具包中提供的几个示例,给出了如何确定对象在屏幕上的位置的示例,并与代表玩家的自定义光标进行交互手。
我建议查看提供的几个示例,以清楚地了解互动的工作方式。该工具包与Windows SDK的Office Kinect相同的位置找到。
http://www.microsoft.com/en-us/kinectforwindows/develop/developer/developer-downloads.aspx
shapegame
此示例生成从窗口顶部掉落的随机形状(其中一些椭圆形)。这些形状与Kinect产生的骨骼相互作用。您将看到如何在窗口中以及与骨架有关的元素位置。
Basic Interactions
这个示例可以使用几件事。它显示了如何根据手部位生产自定义光标。它还可以创建一个可以连接到Kinect事件的ContentControl
(例如,Enter,Enter,Hover和退出事件)。它以这样的方式构建,因为它是ContentControl
,可以将任何东西都放在里面 - 无论是单个椭圆还是复杂的布局。