示例#1
0
        private float formelxz(float ex, float ez, float sx, float sz)
        {
            double a      = Convert.ToInt32(ex - sx);
            double b      = Convert.ToInt32(ez - sz);
            double radian = Math.Atan2(a.Absltdou(), b.Absltdou());

            return(Convert.ToSingle(radian * (180 / Math.PI)));
        }
示例#2
0
        //winkelberechnung für z achse
        private float formelzy(float ez, float ey, float sz, float sy)
        {
            double a      = Convert.ToInt32(ez - sz);
            double b      = Convert.ToInt32(ey - sy);
            double radian = Math.Atan2(a.Absltdou(), b.Absltdou());

            return(Convert.ToSingle(radian * (180 / Math.PI)));
        }
示例#3
0
        private float formelxyz(float ex, float ey, float ez, float sx, float sy, float sz)
        {
            double x = Convert.ToInt32(ex - sx);
            double y = Convert.ToInt32(ey - sy);

            double a      = Math.Sqrt((Math.Pow(x.Absltdou(), 2) + (Math.Pow(y.Absltdou(), 2))));
            double b      = Convert.ToInt32(ez - sz);
            double radian = Math.Atan2(a.Absltdou(), b.Absltdou());

            return(Convert.ToSingle(radian * (180 / Math.PI)));
        }
示例#4
0
        //Winkelberechnung
        private double Winkelberechnung(SkeletonPoint V1, SkeletonPoint V2, string Richtung)
        {
            double gesamt  = 0;
            double Zaehler = 0;
            double nenner1 = 0;
            double nenner2 = 0;

            switch (Richtung)
            {
            case "xy":
                Zaehler = (V1.X * V2.X) + (V1.Y * V2.Y);
                nenner1 = Math.Sqrt((V1.X * V1.X) + (V1.Y * V1.Y));
                nenner2 = Math.Sqrt((V2.X * V2.X) + (V2.Y * V2.Y));
                break;

            case "xz":
                Zaehler = (V1.X * V2.X) + (V1.Z * V2.Z);
                nenner1 = Math.Sqrt((V1.X * V1.X) + (V1.Z * V1.Z));
                nenner2 = Math.Sqrt((V2.X * V2.X) + (V2.Z * V2.Z));
                break;

            case "yz":
                Zaehler = (V1.Y * V2.Y) + (V1.Z * V2.Z);
                nenner1 = Math.Sqrt((V1.Y * V1.Y) + (V1.Z * V1.Z));
                nenner2 = Math.Sqrt((V2.Y * V2.Y) + (V2.Z * V2.Z));
                break;

            case "xyz":
                Zaehler = (V1.X * V2.X) + (V1.Y * V2.Y) + (V1.Z * V2.Z);
                nenner1 = Math.Sqrt(Math.Pow(V1.X, 2) + Math.Pow(V1.Y, 2) + Math.Pow(V1.Z, 2));
                nenner2 = Math.Sqrt(Math.Pow(V2.X, 2) + Math.Pow(V2.Y, 2) + Math.Pow(V2.Z, 2));
                break;
            }

            var nenner = nenner1 * nenner2;

            gesamt = (Math.Acos(Zaehler.Absltdou() / nenner.Absltdou()) * (180 / Math.PI));
            return(gesamt);

            //if (!Richtung.Equals("xyz"))
            //{
            //    var nenner = nenner1 * nenner2;
            //    gesamt = (Math.Acos(Zaehler.Absltdou() / nenner.Absltdou()) * (180 / Math.PI));
            //    return gesamt;
            //}
            //else
            //{
            //    var nenner = nenner1 * nenner2;
            //    gesamt = (Math.Acos(Zaehler / nenner) * (180 / Math.PI));
            //    return gesamt;
            //}
        }
示例#5
0
        //Winkelberechnung
        private double Winkelberechnung(SkeletonPoint V1, SkeletonPoint V2, string Richtung)
        {
            double gesamt  = 0;
            double Zaehler = 0;
            double nenner1 = 0;
            double nenner2 = 0;

            switch (Richtung)
            {
            case "xy":
                Zaehler = (V1.X * V2.X) + (V1.Y * V2.Y);
                nenner1 = Math.Sqrt((V1.X * V1.X) + (V1.Y * V1.Y));
                nenner2 = Math.Sqrt((V2.X * V2.X) + (V2.Y * V2.Y));
                break;

            case "xz":
                Zaehler = (V1.X * V2.X) + (V1.Z * V2.Z);
                nenner1 = Math.Sqrt((V1.X * V1.X) + (V1.Z * V1.Z));
                nenner2 = Math.Sqrt((V2.X * V2.X) + (V2.Z * V2.Z));
                break;

            case "yz":
                Zaehler = (V1.Y * V2.Y) + (V1.Z * V2.Z);
                nenner1 = Math.Sqrt((V1.Y * V1.Y) + (V1.Z * V1.Z));
                nenner2 = Math.Sqrt((V2.Y * V2.Y) + (V2.Z * V2.Z));
                break;

            case "xyz":
                Zaehler = (V1.X * V2.X) + (V1.Y * V2.Y) + (V1.Z * V2.Z);
                nenner1 = Math.Sqrt(Math.Pow(V1.X, 2) + Math.Pow(V1.Y, 2) + Math.Pow(V1.Z, 2));
                nenner2 = Math.Sqrt(Math.Pow(V2.X, 2) + Math.Pow(V2.Y, 2) + Math.Pow(V2.Z, 2));
                break;
            }

            var nenner = nenner1 * nenner2;

            gesamt = (Math.Acos(Zaehler.Absltdou() / nenner.Absltdou()) * (180 / Math.PI));

            //wenn zähler und nenner null sind
            if (Double.IsNaN(gesamt))
            {
                gesamt = 0;
            }

            return(gesamt);
        }
示例#6
0
        //alternativ winkelberechnung x
        private double WinkelBerechnungX(SkeletonPoint V1)
        {
            double gesamt  = 0;
            double Zaehler = 0;
            double nenner  = 0;

            Zaehler = V1.X;
            nenner  = Math.Sqrt(Math.Pow(V1.X, 2) + Math.Pow(V1.Y, 2) + Math.Pow(V1.Z, 2));
            gesamt  = Math.Asin(Zaehler.Absltdou() / nenner.Absltdou()) * (180 / Math.PI);

            //wenn zähler und nenner null sind
            if (Double.IsNaN(gesamt))
            {
                gesamt = 0;
            }

            return(gesamt);
        }