25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

27 lines
589 B

  1. import {geoProjection as projection} from "d3-geo";
  2. import {abs, cos, epsilon, tan} from "./math.js";
  3. export function nellHammerRaw(lambda, phi) {
  4. return [
  5. lambda * (1 + cos(phi)) / 2,
  6. 2 * (phi - tan(phi / 2))
  7. ];
  8. }
  9. nellHammerRaw.invert = function(x, y) {
  10. var p = y / 2;
  11. for (var i = 0, delta = Infinity; i < 10 && abs(delta) > epsilon; ++i) {
  12. var c = cos(y / 2);
  13. y -= delta = (y - tan(y / 2) - p) / (1 - 0.5 / (c * c));
  14. }
  15. return [
  16. 2 * x / (1 + cos(y)),
  17. y
  18. ];
  19. };
  20. export default function() {
  21. return projection(nellHammerRaw)
  22. .scale(152.63);
  23. }