Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef REGULATOR_C_
- #define REGULATOR_C_
- #define FLAG_GPS
- #endif
- if(FLAG_GPS == FLAG_GPS_SentPosition)
- {
- public cord2cart(double lat, double lon)
- {
- //CORD2CART Funkcja konwertuje położenie geograficzne wyrażone w stopniach
- //na położenie w lokalnym układzie kartezjańskim w m
- lat = lat * Math.PI / 180.0;
- lon = lon * Math.PI / 180.0;
- Point p = new Point();
- double a = 6378137.0; // promień Ziemi na równiku i biegunach
- double b = 6356752.3;
- double R = Math.Sqrt((Math.Pow(Math.Pow(a, 2) * Math.Cos(referencePoint_lat0Rad), 2) + Math.Pow(Math.Pow(b, 2) * Math.Sin(referencePoint_lat0Rad), 2)) / (Math.Pow(a * Math.Cos(referencePoint_lat0Rad), 2) + Math.Pow(b * Math.Sin(referencePoint_lat0Rad), 2)));
- //MessageBox.Show(R.ToString());
- p.X = (lon - referencePoint_lon0Rad) * R * Math.Sin(Math.PI / 2.0 - referencePoint_lat0Rad);
- p.Y = (lat - referencePoint_lat0Rad) * R;
- return p;
- }
- double[] calcStraightLine(double x1, double y1, double x2, double y2) // Oblicza trajektorię jako prostą między dwoma punktami
- {
- double[] parameters = new double[2];
- double a = (y2 - y1) / (x2 - x1);
- double b = y1 - a * x1;
- parameters[0] = a;
- parameters[1] = b;
- return parameters;
- }
- //oblicz orientację jaką powinien miec katamaran by byc na kursie do punktu (x,y)
- double calcOrientation(double a, double x) // xxx a współczynnik kierunkowy, x -
- {
- double ang = Math.Atan(a) * 180 / Math.PI;
- //textBlockFOO3.Text = ang.ToString("0.##");
- //textBlockFOO4.Text = x.ToString("0.##");
- if (x >= 0)
- {
- ang = 90 - ang;
- }
- else
- {
- ang = 270 - ang;
- }
- return ang;
- }
- double calcDistanceToTrajectory(double X, double Y, double a, double b) // xxx co on tu liczy? // Pewnie odległość od punktu
- {
- double A = -a;
- double B = 1; // xxx ?
- double C = -b;
- return (A * X + B * Y + C) / Math.Sqrt(Math.Pow(A, 2) + Math.Pow(B, 2));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement