Closed Fil closed 5 years ago
Are these artifacts expected?
Update: the lines do seem to bend one way or the other as k moves below or above ~0.68, so perhaps that's why the AuthaGraph projection settled on that value.
I noticed that too. They are not here with k=0.68 but quite visible with k=0.59.
Yeah, those seem to be the bisectors of the tetrahedron's sides.
Here's the initial image from @jkunimune15's post:
Here's an crudely annotated Imago projection, with k=0.4 to emphasize the artifacts:
Note how the inflections all match the triangle bisectors marked in red.
I suspect the original AuthaGraph projection was optimized so that the lines crossing those boundaries get curved to be perpendicular to them at the intersection points. Not sure if that can be directly translated to a specific (or even better, mathematically derived) k value, or if they used another strategy (which might explain the small differences between the Imago and the original AuthaGraph).
Ha, very interesting observation! Then probably we should compute that exact value, and mention it in the documentation.
FWIW, I had a similar problem in pseudo-Authagraph, but on the edges of the tetrahedron rather than on the bisectors of its faces. Without my (imperfect) smoothing, the projection was continuous but not differentiable at the joints between its parts. A possible solution is to replace the power function f(r) = r^p by another function with the following properties:
Here is a sample function that satisfies the conditions (EDIT: fixed):
@mciura if you want to add your function in src/imago.js : clone this repo, and checkout the imago branch. Then run:
yarn
to install the dependencies;yarn test
to create dist/d3-geo-polygon.jstest/render-world imago > imago.png
or test/render-world imago | imgcat
to create the test imageI have added an orientation map at https://observablehq.com/@fil/imago-projection-distorsion-analysis#ORIENTATION
k = 0.7:
k = 0.59:
@Fil Thank you for the instructions. I have tried a couple of functions different from the power function, with abysmal results. One conclusion is that keeping the lines of latitude above Antarctica nicely rounded depends on the values of the function in the entire [0, 1] interval.
I've done some math, and assuming I've done this right, the value of k that prevents kinks seems to in fact be or about 0.720.
The projection has been released with d3-geo-polygon 1.7.0.
The last mind-boggling question is to find the other rotations: one that allows to cut in the Bering Strait, and one that puts Antarctica on the left of the map.
And here is the first (I believe…) book to carry the Imago projection!
This projection was a perfect fit for the story arc: as you can read it from left to right to follow the action ("Peopling the planet"), main axis of movement, and direction of time.
Refs: