So, in studying the original Winkel Tripel equations again yesterday, I
stumbled upon a scientific paper containing the Newton's Method inverse
map-projection solution equations, as well as the partial derivatives of
all the Winkel Tripel projections. After reading it over, incorporating
some of their simplified equations into my code, and then noticing
several glaring problems with my own solution (namely my trash initial
conditions), I finally solved for the inverse of the Winkel Tripel
projection! Feel free to raster it up!
The JavaFX thing wouldn't really have worked for me given that I needed
to transform the image, not just display it. I'm still salty I didn't
find out about that sooner. Anyway, I got it all to work besides the
complex number ones. I'll figure those out in a bit. I also haven't
tested saving yet, but I'm sure it will work perfectly on the first try.
I added a progress bar so you can see just how slow my program is. I
also added jpg image saving, since that apparently works now, renamed
the .jar, and fixed some bugs with image sizes. And look! It actually
looks like an application now!
I've decided to give up on replicating the AuthaGraph projection. I'm
pretty close to the actual projection, and while mine is not
authagraphic, I think it's more authagraphic than the actual AuthaGraph
projection. Of course, I can't really tell, because I can't find an
AuthaGraph map with Tissot's indicatrices on it.
In attempting to solve for the AuthaGraph projection, I made something
that is, in my personal opinion, better: a compromise tetrahedral
projection! It's not authagraphic (though, technically, neither is
AuthaGraph), but it distorts shape far less than AuthaGraph does. I'll
still try to solve AuthaGraph, maybe even modify it to make it, you
know, authagraphic, but I really like this map projection I came up
with.
Turns out some of those garbage IDL-zero conventions were lurking in my
code. Typical. Cut off one head of the evil conventions hiding in my
code, and two more grow in it's place. Well, I'm almost certain my
conventions are correct now, and am ready to tackle AuthaGraph again.
So, it turns out that one of the reasons I was having such trouble with
AuthaGraph was that I had a sign convention where south was positive and
the international date line was zero. So, I fixed that, because that was
awful. It should be easier for me to figure out polyhedric projections
now. Mind you, AuthaGraph doesn't work at all right now. It's just not
even close right now. Don't worry - I'll work on that.
I tried to make MapProjections faster, but it didn't work. The GUI looks
nicer now, but a bunch of functionality is gone.
I also did something with wormhole, apparently.
I fixed Winkel Tripel, sort of. I corrected a bit of math and tweaked
some numbers, and it now spits out something that resembles WT with
strange artifacts that seems to get worse as I turn up the precision.
I added a new program that simply takes a couple of input panoramas and
animates what it would look like to go through a wormhole (abstracted to
a four-dimensional cylinder).
I implemented a new axis, Hammer, an equal-area projection similar to
hammer. I also threw in a random axis option, which randomly selects a
point on the Earth's surface to be the axis of the projection.
I invented a new map projection! I have given it the working title
"Rectus Aequilibrium," because it is square, it is a compromise
projection, Latin is cool, and I promised myself a long time ago that if
I ever made a map projection, I would not name it after myself. Feel
free to try it, but I think I will be trying a different algorithm,
since I think this one distorts shape too much to justify the small
amount of size distortion it reduces.
In other news, I implemented a Van der Grinten projection and spruced up
my naming conventions a bit.
I created a bunch of new maps! I added the Mollweide projection to the
program, and a Winkel Tripel button that does not yet work. I have
Winkel working in the vectorized version, but I am still working on the
math in the main program. Also, check out the "Shifted" axis preset (now
my favorite projection when combined with "Shifted Quincuncial), as well
as the "Circles", "Stars", and "Political" themes.
I fixed a minor bug that was creating dotted lines across certain maps,
I added a new input map, and I made it so that you can exit the program
through the GUI.
I made an executable jar file. Please note, the jar must remain in the
repository folder in order to access the input images. Also, I am not
yet sure if it works on Mac.
I got it to work just enough for me to use it! Pierce Quincuncial
doesn't work; the series doesn't actually converge for the southern
hemisphere. Shifted Quincuncial works perfectly, though! The shifted
quincuncial with the "longest line" preset is currently my favorite map
of all time.
I was able to produce some kind of vectorized map by using series to
stand in for arccn, but I'm pretty sure it's not Pierce Quincuncial.
There's some mathematical notation I don't understand, which I'm
currently working on.
I have oblique angles working in vector form. This has enabled me to try
out different maps and realize that my angles are all slightly off. It
has to do with the SVG I used. I will now begin trying to rectify the
input svg I used. Also, I found out that when landmasses get cut in half
by map borders, it screws everything up, so I have to avoid that.
I made a secondary class, very similar to the first, except that it uses
SVGs rather than JPEGs. This actually means I must change a great deal
of the maths, but for now I at least have equirectangular and polar
(mostly) functional. Enjoy.
I made a variant of Quincuncial, which just shifts it over to make the
northern and southern hemisphere both appear as squares. The resulting
projection is rectangular, and works very well with the Longest Line
axis preset. I also made a few more output maps.
I made the thing open myMap.jpg whenever it runs so the user doesn't
have to navigate to it, I altered a preset, I erased all words from
political.jpg, and I made another little map that I might make into a
Civ V map if I ever feel like it.
I made a whole bunch of new map projections, and also added a few new
map styles, and some more axis presets. I also put a few of my favourite
maps in the output folder.
I got it to work perfectly! The output is a beautiful Peirce Quincuncial
projection. My main problem before was that this projection requires a
complex function called cn(u,k), and every single definition on the
internet was exceedingly vague. Luckily, I found a package online that
could calculate cn for me, which meant that I didn't need to do any
crazy integration or calculus whatsoever.
I wrote out the complex math for Peirce-Quincuncial, as well as for
Polar, and I got a map; it just doesn't look correct. I don't know what
I did, but it's weird. I think there's a casting issue somewhere.
This is my initial commit; I have all the necessary files, and the code
technically works. Right now, the output maps are just black, but soon
they will be actual world maps.