Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 

27 строки
717 B

  1. import {asin, atan2, cos, sin, sqrt, tan} from "./math.js";
  2. import parallel1 from "./parallel1.js";
  3. export function craigRaw(phi0) {
  4. var tanPhi0 = tan(phi0);
  5. function forward(lambda, phi) {
  6. return [lambda, (lambda ? lambda / sin(lambda) : 1) * (sin(phi) * cos(lambda) - tanPhi0 * cos(phi))];
  7. }
  8. forward.invert = tanPhi0 ? function(x, y) {
  9. if (x) y *= sin(x) / x;
  10. var cosLambda = cos(x);
  11. return [x, 2 * atan2(sqrt(cosLambda * cosLambda + tanPhi0 * tanPhi0 - y * y) - cosLambda, tanPhi0 - y)];
  12. } : function(x, y) {
  13. return [x, asin(x ? y * tan(x) / x : y)];
  14. };
  15. return forward;
  16. }
  17. export default function() {
  18. return parallel1(craigRaw)
  19. .scale(249.828)
  20. .clipAngle(90);
  21. }