| 64 | |
| 65 | |
| 66 | Xyz cartesianToCurvilinear(const Xyz& point, double latitude) |
| 67 | { |
| 68 | double w = std::sqrt(1 - e2 * std::sin(latitude) * std::sin(latitude)); |
| 69 | double n = a / w; |
| 70 | double m = a * (1 - e2) / (w * w * w); |
| 71 | return Xyz(point.X / (n * std::cos(latitude)), point.Y / m, point.Z); |
| 72 | } |
| 73 | } |
| 74 | |
| 75 |