Esempio n. 1
0
 public CollectData(string picName,double timespan,NDILib.Position3d position0,NDILib.Position3d position1,NDILib.Position3d position2)
 {
     this.picName = picName;
     this.timespan = timespan;
     this.position0 = position0;
     this.position1 = position1;
     this.position2 = position2;
 }
Esempio n. 2
0
        void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            maxSpeed = 0;
            maxGrasp = 0;
            NDILib.Position3d oldposition = allDataList[0].position2;
            double oldtime = allDataList[0].timespan;
            double oldspeed = 0;
            for (int i = 0; i < allDataLength;i++ ) {
                position3D0=allDataList[i].position0;
                position3D1=allDataList[i].position1;
                position3D2=allDataList[i].position2;

                if (position3D0.x > MAX_NEGATIVE && position3D1.x > MAX_NEGATIVE) {
                    double distance = Math.Sqrt((position3D0.x - position3D1.x) * (position3D0.x - position3D1.x) +
                                                (position3D0.y - position3D1.y) * (position3D0.y - position3D1.y) +
                                                (position3D0.z - position3D1.z) * (position3D0.z - position3D1.z));

                    Console.WriteLine("distance:" + distance);
                    if (distance > maxGrasp)
                    {
                        maxGrasp = distance;
                    }
                }

                if (position3D2.x>MAX_NEGATIVE){
                    double time = allDataList[i].timespan - oldtime;
                    if (time != 0)
                    {
                        double range = Math.Sqrt((position3D2.x - oldposition.x) * (position3D2.x - oldposition.x) +
                                                 (position3D2.y - oldposition.y) * (position3D2.y - oldposition.y) +
                                                 (position3D2.z - oldposition.z) * (position3D2.z - oldposition.z));
                        double speed = range / time;
                        double acce = 1000 * (speed - oldspeed) / time;
                        Console.WriteLine("speed:" + speed);
                        Console.WriteLine("acce: " + acce);
                        if (acce < 15 && acce > -15)
                        {
                            if (speed > maxSpeed)
                            {
                                maxSpeed = speed;
                            }
                            oldposition = position3D2;
                            oldtime = allDataList[i].timespan;
                            oldspeed = speed;
                        }
                    }
                }
            }
        }