关于C#中timer类 在C#里关于定时器类就有3个
1定义在SystemWindowsForms里
2定义在SystemThreadingTimer类里
3定义在SystemTimersTimer类里
SystemWindowsFormsTimer是应用于WinForm中的,他是通过Windows消息机制实现的,类似于VB或Delphi中的Timer控件,内部使用API SetTimer实现的。他的主要缺点是计时不精确,而且必须有消息循环,Console Application(控制台应用程式)无法使用。
SystemTimersTimer和SystemThreadingTimer很类似,他们是通过NET Thread Pool实现的,轻量,计时精确,对应用程式、消息没有特别的需要。SystemTimersTimer还能够应用于WinForm,完全取代上面的Timer控件。他们的缺点是不支持直接的拖放,需要手工编码。
using System;
using SystemCollectionsGeneric;
using SystemComponentModel;
using SystemData;
using SystemDrawing;
using SystemText;
using SystemWindowsForms;
using SystemTimers;
using SystemCollections;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
SystemTimersTimer aTimer = new SystemTimersTimer();
aTimerElapsed += new ElapsedEventHandler(theout); //到达时间的时候执行事件;
// 设置引发时间的时间间隔 此处设置为1秒(1000毫秒)
aTimerInterval = 100000;
aTimerAutoReset = true;//设置是执行一次(false)还是一直执行(true);
aTimerEnabled = true; //是否执行SystemTimersTimerElapsed事件;
}
public void theout(object source, SystemTimersElapsedEventArgs e)
{
ArrayList AutoTask = new ArrayList();
AutoTaskAdd("8:30:00");
AutoTaskAdd("9:30:00");
AutoTaskAdd("10:30:00");
AutoTaskAdd("11:34:15");
for (int n = 0; n < 4; n++)
{
if (DateTimeNowToLongTimeString()Equals(AutoTask[n]))
{
MessageBoxShow("现在时间是" + AutoTask[n]);
}
}
}
析:身体以及各个关节点的位置定义了一个姿势。更具体的来说,是某些关节点相对于其他关节点的位置定义了一个姿势。 姿势的类型和复杂度决定了识别算法的复杂度。 通过关节点位置的交叉或者关节点之间的角度都可以进行姿势识别。
通过关节点交叉进行姿势识别就是对关节点进行命中测试。
我们可以确定某一个关节点的位置是否在 UI 界面上某一个可视化元素的有效范围内。我们可以对关节点做同样的测试。 但是需要的工作量要少的多,
因为所有的关节点都是在同一个坐标空间中, 这使得计算相对容易。 例如叉腰动作(hand-on-hip) ,
可以从骨骼追踪的数据获取左右髋关节和左右手的位置。然后计算左手和左髋关节的位置。如果这个距离小于某一个阈值,就认为这两个点相交。那么,这样就变得
简单多了。
但是,由于Kinect的精度问题,但即使通过一些平滑参数设置,从 Kinect
中获取的关节点数据要完全匹配也不太现实。另外,不可能期望用户做出一些连贯一致的动作, 或者保持一个姿势一段时间。 简而言之,
用户运动的精度以及数据的精度使得这种简单计算不适用。 因此, 计算两个点的长度, 并测试长度是否在一个阈值内是唯一的选择。角度原理也与之类似。
当两个关节点比较接近时, 会导致关节点位置精度进一步下降,
这使得使用骨骼追踪引擎判断一个关节点的开始是否是另一个关节点的结束点变得困难。比如,很难将手放在脸的前面,手放在头上,
和手捂住耳朵这几个姿势区分开来。 要摆出一个确切的姿势也很困难, 用户是否会按照程序显示的姿势来做也是一个问题。
一些姿势使用其他方法识别精度会更高。例如,用户伸开双臂和肩膀在一条线上这个姿势,称之为 T
姿势。可以使用节点相交技术,判断手、肘、以及肩膀是否在 Y
轴上处于近乎相同的位置。另一种方法是计算某些关节点连线之间的角度。骨骼追踪引擎能够识别多达20个关节点数据。任何三个关节点就可以组成一个三角形。使用三角几何就可以计算出他们之间的角度。
开发工具即为KinectforWindowsSDK。Kinect的SDK中含有许多独特的接口,能实现多种功能,比如,可以让 *** 作人员轻松的获取Kinect采集的图像信息流数据,并进行一系列的应用开发;还提供有人体骨骼提取和语音识别等功能。
要在电视上玩体感游戏的话,可以免费选择使用或者购买体感游戏机使用。
目前有这几大类可供参考:1微软XboxKinect 2索尼PS4 3任天堂Wii 4小霸王 5Soomax享动 6爱动
推荐xbox,它是目前可以说最好的体感游戏机吧。现在买的话,价格大概在1400左右,游戏的话大概200左右一个的,经典的体感游戏有切水果,运动会,舞力全开这些的。需要家用机,目前主流得有索尼的ps4,任天堂的wii。
免费连接手机的 *** 作可以按照下面使用:
首先,电视和手机连接同一个wifi,手机上下载悟空遥控器
2打开悟空遥控器,搜索“电视设备”,若搜不到自家的电视,则需先在电视上下载这些(电视猫,电视家,魔力视频……)应用之一
3连接电视设备后,手机会自动在电视上安装悟空遥控器
4在手机端的悟空遥控器app中,搜索一些体感游戏,如“运动加加”,点击安装到电视上,然后就可以在电视上玩了
:从用户定位上看
要看体感游戏机哪个较好,首先要看自己是哪类群体。
1微软XboxKi nec t。它的主要用户是专业游戏玩家,一般是年轻人,他们喜欢游戏手柄来 *** 作,手柄有很多按键和两个摇杆,反应很快, *** 作复杂,带振动反馈,体验很爽,但需长时间训练。Xbox的配件Kinect支持多人体感游戏,很多休闲玩家很喜欢里面的冒险游戏、舞蹈游戏。
2索尼PS4。它基本针对专业游戏玩家,主打高清画面的游戏,但体感 *** 控很弱,玩家很少用。
3任天堂Wii。它主要面向非专业玩家,也就是休闲玩家,采用遥控手柄,很多好玩的运动类游戏,如乒乓球、高尔夫、划船等。
4小霸王。它主要面向非专业玩家,类似Wii,有不少运动游戏和以前小霸王红白机时代的像素游戏,所以,怀旧玩家也是其主攻的。
5Soomax享动。它面向非专业玩家,也就是休闲玩家,技术类似Kinect的传感器,自动识别人的骨骼,不用游戏控制器。
6爱动。它和Wii技术类似,主要面向非专业玩家,主打乒乓球游戏等。
从 *** 控方式上看
要想看哪个体感游戏机较好,还要从 *** 控技术上看。
1微软XboxKinect。它的配件Kinect是传感器技术,通过红外线的结构光算法,可以分析玩家离摄像头的距离,并能分析玩家的骨骼,识别能力很强,房间光线暗也不影响识别效果,所以,不需要玩家拿任何游戏控制器,支持多人一起体感游戏。
2索尼PS4。它通过动作感应电子以及摄像头追踪光标的技术完成体感 *** 控,需要拿游戏控制器,但支持的游戏很少。
3任天堂Wii。它是第一代体感游戏机的开创者,采用两个遥控手柄,玩家只要挥动手柄,游戏机可以获得手的挥动方向,配合手柄上的按键来控制游戏。优点是价格便宜,缺点是只安装复杂,只识别手的位置,所以,玩一会后手腕和胳膊会很酸。
4小霸王。它采用类似Wii的遥控手柄, *** 作方式和Wii一样,价格比Wii要便宜。
5Soomax享动。它采用类似Kinect的传感器, *** 作方式和XboxKinect一样,玩家不用拿任何游戏控制器,多人一起用身体动作玩游戏。缺点是:传感器成本高。
6爱动。它采用类似Wii的遥控手柄, *** 作方式和Wii一样,另外增加了一个自己研发的摄像头,也可以不用游戏控制器,但识别效果比Kinect有较大差距。
以上就是关于kinect 骨骼数据输出到文本文档里面 c#全部的内容,包括:kinect 骨骼数据输出到文本文档里面 c#、C#编程 人体关节坐标获取、kinect开发工具是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)