我基本上想做的是使用 C# 和 Kinect SDK(完成)将 kinect 骨架帧数据(关节位置)写入文件,然后在外部处理这些数据(完成),然后将数据读回我的应用程序(完成)并逐帧将数据绘制为光点步行者(骨架关节),以便我看到动画。(问题)
我的问题是:如何使用 C#(及其 DrawingContext 类)绘制这个 30fps 动画?
我想使用 DrawingContext,因为我在录制时已经将它用于 SkeletonFrames 的实时输出。就像这样简单地完成,类似于“Skeleton Basics”SDK 示例:
this.sensor.SkeletonFrameReady += this.SensorSkeletonFrameReady;
...
private void SensorSkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
{
...
using (DrawingContext dc = this.drawingGroup.Open())
{
...
dc.DrawEllipse(drawBrush, null, 2Dpoint, JointThickness, JointThickness);
}
}
所以 kinect 为我提供了大约 30fps 使用事件,我只是绘制数据。
但是当没有 kinect 但数据是从文件/内存中读取时,我该如何绘制呢?(目前使用的是 2DArray [Frame, Joint])
我想过让一个线程以 30fps 运行(使用睡眠来实现帧率),然后发送一个类似的事件或直接绘制。但是我试图让这个工作完全失败。例如,我没有将事件发送到主线程进行绘图。
问题可能是我缺乏对 C# 的理解(我对它完全陌生)......
关于如何设置和工作的任何提示?