C# 使用Kinect拾取框架元素(如椭圆或矩形)

C# 使用Kinect拾取框架元素(如椭圆或矩形),c#,wpf,kinect,picking,nui,C#,Wpf,Kinect,Picking,Nui,我(字面上)希望使用Kinect的NUI捕获框架元素。假设我的网格(或画布)上有一个椭圆,我应该能够使用我的程序拾取一个椭圆 为了做到这一点,我认为我必须确定元素的确切位置,比如Unity中的Transform.position,但我在WPF中找不到这样的东西 这是我的XAML代码 <Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch"> <my:KinectSensorChooser Horizo

我(字面上)希望使用Kinect的NUI捕获框架元素。假设我的网格(或画布)上有一个椭圆,我应该能够使用我的程序拾取一个椭圆

为了做到这一点,我认为我必须确定元素的确切位置,比如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或ElementPick这样的活动也会有帮助,但我想我必须自己写一些类似的东西


顺便说一句,这是一个“工程教育软件”项目,旨在为昂贵或危险的实验等工程练习开发虚拟环境。

SDK v1.6工具包中提供了微软的几个示例,举例说明如何确定屏幕上对象的位置,并使用代表玩家手的自定义光标与对象交互

我建议查看提供的几个示例,以便清楚地了解交互是如何工作的。该工具包与office Kinect for Windows SDK位于同一位置

ShapeGame

此示例生成从窗口顶部掉落的随机形状(其中一些是椭圆)。这些形状与Kinect生成的骨骼交互。您将看到如何获取元素在窗口中的位置以及相对于骨架的位置

基本互动


这个例子做了一些有用的事情。它显示了如何根据手的位置生成自定义光标。它还创建一个
ContentControl
,可以连接到Kinect事件(例如手动输入、悬停和退出事件)。它是以这样的方式构建的,因为它是一个
ContentControl
,任何东西都可以放在里面——无论是单个椭圆还是复杂的布局。

我一直在尝试使用这台机器,但我不知道这些新下载甚至存在。塔克斯人。