import {asin, atan2, cos, sin, sqrt} from "../math.js"; | |
export function azimuthalRaw(scale) { | |
return function(x, y) { | |
var cx = cos(x), | |
cy = cos(y), | |
k = scale(cx * cy); | |
if (k === Infinity) return [2, 0]; | |
return [ | |
k * cy * sin(x), | |
k * sin(y) | |
]; | |
} | |
} | |
export function azimuthalInvert(angle) { | |
return function(x, y) { | |
var z = sqrt(x * x + y * y), | |
c = angle(z), | |
sc = sin(c), | |
cc = cos(c); | |
return [ | |
atan2(x * sc, z * cc), | |
asin(z && y * sc / z) | |
]; | |
} | |
} | |