From c245ad9089aeb8c7fc7683b6a8a20d04a74818f4 Mon Sep 17 00:00:00 2001 From: Paul Jungeblut Date: Mon, 10 Oct 2016 21:39:35 +0200 Subject: Typesetting math section. --- math/spheres.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 math/spheres.cpp (limited to 'math/spheres.cpp') diff --git a/math/spheres.cpp b/math/spheres.cpp new file mode 100644 index 0000000..324eb00 --- /dev/null +++ b/math/spheres.cpp @@ -0,0 +1,24 @@ +// Great Cirlce Distance mit Längen- und Breitengrad. +double gcDist( + double pLat, double pLon, double qLat, double qLon, double radius) { + pLat *= PI / 180; pLon *= PI / 180; qLat *= PI / 180; qLon *= PI / 180; + return radius * acos(cos(pLat) * cos(pLon) * cos(qLat) * cos(qLon) + + cos(pLat) * sin(pLon) * cos(qLat) * sin(qLon) + + sin(pLat) * sin(qLat)); +} + +// Great Cirlce Distance mit kartesischen Koordinaten. +double gcDist(point p, point q) { + return acos(p.x * q.x + p.y * q.y + p.z * q.z); +} + +// 3D Punkt in kartesischen Koordinaten. +struct point{ + double x, y, z; + point() {} + point(double x, double y, double z) : x(x), y(y), z(z) {} + point(double lat, double lon) { + lat *= PI / 180.0; lon *= PI / 180.0; + x = cos(lat) * sin(lon); y = cos(lat) * cos(lon); z = sin(lat); + } +}; -- cgit v1.2.3