public Point[] GetCarBoundaries()
{
Point[] corners=new Point[4];
//
//
// nar2************nar1
// * *
// * loc *--------- 0 rad
// * *
// nar3************nar4
double d=Math.Sqrt(Math.Pow(0.5*this.carSize.Width,2.0)+Math.Pow(0.5*this.carSize.Height,2));
double katOdchyleniaNaroznika = Math.Asin(0.5*this.carSize.Width/d);
corners[0].X = (int)( Math.Cos(this.AxisDirection / 180 * Math.PI + katOdchyleniaNaroznika) * d + this.carLocation.longitude);
corners[0].Y = (int)( Math.Sin(this.AxisDirection / 180 * Math.PI + katOdchyleniaNaroznika) * d + this.carLocation.latitude);
corners[1].X = (int)( -(Math.Cos(this.AxisDirection / 180 * Math.PI - katOdchyleniaNaroznika) * d) + this.carLocation.longitude);
corners[1].Y = (int)( -(Math.Sin(this.AxisDirection / 180 * Math.PI - katOdchyleniaNaroznika) * d) + this.carLocation.latitude);
corners[2].X = (int)( -(Math.Cos(this.AxisDirection / 180 * Math.PI + katOdchyleniaNaroznika) * d) + this.carLocation.longitude);
corners[2].Y = (int)( -(Math.Sin(this.AxisDirection / 180 * Math.PI + katOdchyleniaNaroznika) * d) + this.carLocation.latitude);
corners[3].X = (int)( Math.Cos(this.AxisDirection / 180 * Math.PI - katOdchyleniaNaroznika) * d + this.carLocation.longitude);
corners[3].Y = (int)( (Math.Sin(this.AxisDirection / 180 * Math.PI - katOdchyleniaNaroznika) * d) + this.carLocation.latitude);
return corners;
}
piątek, 3 lipca 2009
Subskrybuj:
Komentarze do posta (Atom)
Brak komentarzy:
Prześlij komentarz