private Vector2D GetRandomSpeed() { var dir = (float)_rnd.NextDouble() * 2 * Trigo.Pi; return(new Vector2D { X = Trigo.Cos(dir) * MeteorSpeed, Y = Trigo.Sin(dir) * MeteorSpeed }); }
private void ComputeAngles() { //http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1208368036 double accXAngle = 57.295 * Trigo.Atan((float)this.LatestAcc.Y / Trigo.Sqrt(Trigo.Pow((float)this.LatestAcc.Z, 2) + Trigo.Pow((float)LatestAcc.X, 2))); double accYAngle = 57.295 * Trigo.Atan((float)-LatestAcc.X / Trigo.Sqrt(Trigo.Pow((float)LatestAcc.Z, 2) + Trigo.Pow((float)LatestAcc.Y, 2))); xAngle = xAngle * LatestGyro.X * (1 - complementFactor) + accXAngle * complementFactor; yAngle = yAngle * LatestGyro.Y * (1 - complementFactor) + accYAngle * complementFactor; }