Download node_modules/d3-geo/src/interpolate.js from NKessler/Horizon: direct link, hf CLI and curl.
- Browser
- Download file 914 Bytes
-
https://huggingface.co/NKessler/Horizon/resolve/main/node_modules/d3-geo/src/interpolate.js
- Command line
-
hf download hf://NKessler/Horizon/node_modules/d3-geo/src/interpolate.js
-
curl -L -o interpolate.js https://huggingface.co/NKessler/Horizon/resolve/main/node_modules/d3-geo/src/interpolate.js
914 Bytes
| import {asin, atan2, cos, degrees, haversin, radians, sin, sqrt} from "./math.js"; | |
| export default function(a, b) { | |
| var x0 = a[0] * radians, | |
| y0 = a[1] * radians, | |
| x1 = b[0] * radians, | |
| y1 = b[1] * radians, | |
| cy0 = cos(y0), | |
| sy0 = sin(y0), | |
| cy1 = cos(y1), | |
| sy1 = sin(y1), | |
| kx0 = cy0 * cos(x0), | |
| ky0 = cy0 * sin(x0), | |
| kx1 = cy1 * cos(x1), | |
| ky1 = cy1 * sin(x1), | |
| d = 2 * asin(sqrt(haversin(y1 - y0) + cy0 * cy1 * haversin(x1 - x0))), | |
| k = sin(d); | |
| var interpolate = d ? function(t) { | |
| var B = sin(t *= d) / k, | |
| A = sin(d - t) / k, | |
| x = A * kx0 + B * kx1, | |
| y = A * ky0 + B * ky1, | |
| z = A * sy0 + B * sy1; | |
| return [ | |
| atan2(y, x) * degrees, | |
| atan2(z, sqrt(x * x + y * y)) * degrees | |
| ]; | |
| } : function() { | |
| return [x0 * degrees, y0 * degrees]; | |
| }; | |
| interpolate.distance = d; | |
| return interpolate; | |
| } | |