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))); }
//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))); }
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))); }
//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; //} }
//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); }
//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); }