如何在kinect中绘制椭圆关节的轨迹?

时间:2014-08-12 15:34:39

标签: c# kinect kinect-sdk motion-detection

我想制作的节目是这样的:
跟踪右手和该坐标的关节,显示椭圆 我让这个椭圆跟踪我的手。

我想让椭圆的痕迹不消失,因此椭圆可以像画笔工具一样使用 我添加了这个声明,

canvasPaint.Children.Add(ellipse);

但它不起作用。实际上,由于这个声明,程序停止运行 那么,如何在this video中绘制多个椭圆?

我正在开发c#和xaml。
我需要openni吗?有必要吗?

1 个答案:

答案 0 :(得分:0)

我自己解决了这个问题:) 出现问题是因为 我没有制作一个新物体,只是添加了一个现有的椭圆。 2.我应该处理Zindex在Kinect视频前打印椭圆。

所以我实现了一个方法drawEllipse,

void drawEllipse(SolidColorBrush c, double x, double y)
    {
        Ellipse ellipse = new Ellipse()
        {
            Fill = c,
            Height = 30,
            Width = 30,
            Opacity = 0.5
        };

        Canvas.SetLeft(ellipse, x);
        Canvas.SetTop(ellipse, y);
        canvasPaint.Children.Add(ellipse);

    }

并处理了Zindex财产。

<Window x:Class="KinectPractice01.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="480" Width="640">
<Grid>
    <Image Height="441" Canvas.Left="10" Canvas.Top="0" Width="618" Name="image1" Panel.ZIndex="0"/>
    <Canvas Margin="0,0,0,0">
        <Canvas Name="canvasPaint" Width="640" Height="480" Margin="90,0,0,0" Panel.ZIndex="1"/>

        <TextBox Height="23" Canvas.Left="32" TextWrapping="Wrap" Text="null" Canvas.Top="10" Width="120" Name="textbox1"/>
        <Ellipse Opacity="0.5" Fill="White" HorizontalAlignment="Left" Height="30"  Stroke="Black" VerticalAlignment="Top" Width="30" Name="ellipse1"/>
        <Ellipse Opacity="0.5" Fill="Cyan" HorizontalAlignment="Left" Height="30"  Stroke="Black" VerticalAlignment="Top" Width="30" Name="ellipse2"/>
    </Canvas>


</Grid>