Use SGP4 Propagator for GPS #770
@ -139,12 +139,12 @@ class MathOperations {
|
|||||||
double u = p / sqrt(q);
|
double u = p / sqrt(q);
|
||||||
double v = pow(b, 2) * pow(u, 2) / q;
|
double v = pow(b, 2) * pow(u, 2) / q;
|
||||||
double P = 27 * v * s / q;
|
double P = 27 * v * s / q;
|
||||||
double Q = pow(sqrt(P + 1) + sqrt(P), 2 / 3);
|
double Q = pow(sqrt(P + 1) + sqrt(P), 2. / 3.);
|
||||||
double t = (1 + Q + 1 / Q) / 6;
|
double t = (1 + Q + 1 / Q) / 6;
|
||||||
double c = sqrt(pow(u, 2) - 1 + 2 * t);
|
double c = sqrt(pow(u, 2) - 1 + 2 * t);
|
||||||
double w = (c - u) / 2;
|
double w = (c - u) / 2;
|
||||||
double d =
|
double d =
|
||||||
sign(vector[2]) * sqrt(q) * (w + pow(sqrt(pow(t, 2) + v) - u * w - t / 2 - 1 / 4, 1 / 2));
|
sign(vector[2]) * sqrt(q) * (w + sqrt(sqrt(pow(t, 2) + v) - u * w - t / 2 - 1 / 4));
|
||||||
double N = a * sqrt(1 + epsilon2 * pow(d, 2) / pow(b, 2));
|
double N = a * sqrt(1 + epsilon2 * pow(d, 2) / pow(b, 2));
|
||||||
latitude = asin((epsilon2 + 1) * d / N);
|
latitude = asin((epsilon2 + 1) * d / N);
|
||||||
altitude = rho * cos(latitude) + vector[2] * sin(latitude) - pow(a, 2) / N;
|
altitude = rho * cos(latitude) + vector[2] * sin(latitude) - pow(a, 2) / N;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user