有人知道如何使用Kinect SDK 1.7的HandPointer
类吗?
我一直在尝试制作类hand
的对象HandPointer
,并在未成功握住手时向控制台打印一条消息。我无法创建hand
对象。
这是HandPointer
class和HandPointer
members的MSDN链接。
这是一个示例代码段:
//First I make the HandPointer object:
HandPointer hand;
//then later I check :
if (hand.IsInGripInteraction)
Console.WriteLine("The hand is gripped");
错误是我运行代码时
HandPointer
对象hand
是null
。是否需要运行任何初始化?
最佳答案
在C#中,所有类都是引用类型。引用类型变量的默认值为null
,因此通常需要使用new
关键字创建该类的实例并为其分配:
List<string> names; // starts off as null
// the following line would cause a null reference exception
// names.Add("names");
names = new List<string>(); // create an instance
// now you can safely work with it
names.Add("names");
// of course, you can also initialize when you declare
List<string> names2 = new List<string>();
names2.Add("names2");
但是,根据链接的文档,
HandPointer
类没有任何公共构造函数,因此您不能这样做。它本质上是一个抽象类。在这种情况下,您似乎需要创建KinectRegion
class的实例并访问其HandPointers
property。我完全不熟悉Kinect编程,因此无法提供有关设置
KinectRegion
的任何建议。您必须查阅SDK随附的C# samples。看起来最适合您的两个是Controls Basics WPF-C# Sample和InteractionGallery-WPF C# Sample。