62 Commits

Author SHA1 Message Date
Justin Kunimune
0f6f70e825 SUPERMAP
I just revised the supermap a bit.
2018-12-22 16:57:00 -10:00
Justin Kunimune
aa34b76190 Explain. Explain! EXPLAIN!
I fixed up and ran the MapExplainer, to update the website. I added more maps to it and made it handle threads properly. I also updated the MapPlotter to have that neat Bat Map, and fixed minor issues with Polyhedral and Octohedral.
2018-02-21 20:22:53 -05:00
Justin Kunimune
752c7ea861 Whereas the capital of Cambodia is...
I added labels to the political map and made it properly handle labels. That was the last major thing I wanted to do. Yay! I created a bunch of new vector maps and took the opportunity to freshen up my super-map. I also found and fixed a fatal bug in the raster map designer in that it was not loading parameters.
2018-02-19 21:29:47 -06:00
Justin Kunimune
aa9a27bc6d The new TetraPower
I renamed AuthaPower to TetraPower, as it is a somewhat more descriptive name, and removed the old TetraPower, as it didn't add much to TetraGraph. I also made my SVGs more compatible, enhanced my graticules, and fixed a bug with Behrmann.
2018-02-15 19:04:59 -10:00
Justin Kunimune
8092068515 We're gonna need a bigger atlas
I wrote a script that automatically generates standard axis maps, which I will now put on Wikipedia. There are some issues on which I am currently working, but this is great for the most part. I also revamped my organisation and documentation slightly.
2018-02-13 11:57:15 -10:00
Justin Kunimune
4c229f2111 Safe at last
I finished my thread-safing. Wow, threads are hard. I'm much more
confident in my code's ability to run without mysterious unreproducable
errors, now, though.
2018-02-11 16:31:42 -10:00
Justin Kunimune
9ae6c2a668 Put the scissors down!
I (finally) made it automatically snip paths that are obviously crossing
interruptions. This should make vector maps look world better straight
out of the program, and will be crucial to mass-producing vector maps.
There's some room for improvement regarding the handling of closepaths,
but all in all, this is a big step up.

I also got a new input, fixed some minor issues with the new
Cahill-Keyes (did you know it's pronounced /kais/?), and might have
fixed the sporadic BufferOverflowExceptions, but I'm not sure about the
last one, as that problem is extremely difficult to reproduce, but I
have a strong suspicion it has something to do with threads, and I added
a bunch of Platform.runLater()s, so we'll see.
2018-02-09 22:43:58 -10:00
Justin Kunimune
b8dc4b78bd Tissot or not Tissot
I noticed some issues with my Tissot's Indicatrices images, and
corrected accordingly.
2018-02-06 16:42:26 -10:00
Justin Kunimune
b50e63d19d So... many... maps...
I decided to spruce up my input SVG generation code, and got very carried away. I moved some of the bigger or more specific files into an Advanced folder in input, and then I got the horrible idea to make a super detailed computer-generated map from Natural Earth data with labels for everything and fancy borders, and then I had to do it. It took a very long time. But it is complete. Check out Advanced\Supermap if you have a powerful enough computer.
I also reorganised my code a bit and took better advantage of shapefiles.
2018-02-04 23:12:52 -10:00
Justin Kunimune
dc2a9e3d36 Finally, my maps look decent.
I switched around Basic.svg and Landmasses.svg, because Basic.svg
honestly just looks bad. The graticule is fine when the landmasses are
filled, but in the map designer, the graticule totally distracts from
the actual coastlines, and it was driving me cra cray.
2018-01-24 11:21:19 -10:00
Justin Kunimune
9f820aba78 A perfect fit
I made it so that saved SVG files have their dimensions changed to fit
the new map projection shape. I know I said that I already did that, but
this time it actually works. I also instilled a couple of checks to
prevent my projections from going to infinity or NaN.
2018-01-21 19:42:07 -10:00
Justin Kunimune
fd87346a95 Minor touch-ups
I noticed some things that bothered me about my GUI, which I adjusted.
2018-01-20 17:41:00 -10:00
Justin Kunimune
4825c12b2b What's it take to get a good map around here?
I created a new Waterman projection for Wikipedia and in the process changed a few things to make the resulting image better. Aren't real applications to reveal shortcomings in one's product the best?
2018-01-18 15:17:35 -10:00
Justin Kunimune
f8dcf34d94 All credit goes to me
I finished my input images. Everything is complete and ready to be used in my program. Tissot-alt1.svg looks more like the one on Wikipedia I'm trying to replace, Tissot.svg looks more like that, Landmasses.svg has an updated, better-looking black-on-white color scheme, Political.svg has cleaner and more editable css, Political.png has been changed to a nicer size, Tissot.png is now consistent with Tissot.svg, Graticule.svg is finer and has tropics and arctic circles labeled, and Orthodromes looks a lot nicer depite being functionally the same.
2018-01-17 20:47:06 -10:00
Justin Kunimune
d753fec73f I don't need you, Crates, whoever you are!
I found out that some of my svg landmass strings got corrupted to oddly-shaped landmasses at some unknown point in time. I also found out that the sources that I cited for said images were completely wrong. So I decided to cut ties and just make all of my own svg inputs from scratch. I used the data from Natural Earth, which I can now access with my improved coding skill (the last time I tried to use Natural Earth, I couldn't figure out how to open their shapefiles, which is why I turned to SVG in the first place). I expanded my zupplementary Python scripts in preparation to redo all of them from my new source. Except Political.svg. That's made by the same person who does Natural Earth using the same data, and is already a great image.
So I cleared out my old SVGs, updated the README to use real sources, and added some notes to myself in the Java files.
2018-01-17 15:45:16 -10:00
Justin Kunimune
05758dd23a Why can't I stop making maps?
Last week, I thought Cahill-Keyes would be my final map projection. Now
I have that, two new pseudocylindricals, and the beginnings of a
Dymaxion derivation in my notebook. I just can't stop! Anyway, I threw
in Natural Earth, because I like Tom Patterson's work (as you may know,
two of my input rasters were made by him), and Karvayaganirsksyviyh the
twelfth, because of that one reference in XKCD and its slightly
persuasive Wikipedia page. Neither was too hard to implement, though I
did make Robinson share a class with the very similar Natural Earth.
I also redid Tissot like I said I would. I relegated the other one to
the side to be used by scripts only. I just like a lot more indicatrices
on my map than Eric Gaba. I need to update Tissot.png to have colors
consistent with Tissot.svg, but I'll do that later. I was going to do
that today before I got distracted finding out all of my Antarcticas
were wrong.
2018-01-15 13:21:46 -10:00
Justin Kunimune
b7cf4345fd I make maps with _direction_ and MAGNITUDE
I added a few more vector inputs that I've been wanting for some time. My Tissot one I actually don't love, but it is based heavily on Eric Gaba's Tissot maps that are all over Wikipedia that I want to replace because they lack indicatrices in the most important locations: the poles and the prime meridian. After I fix Wikipedia, I might make a new one without a graticule and with more indicatrices.
I also made my program slightly better at loading new SVG maps and fixed Landmasses to not have a weird broken Antarctica.
2018-01-14 14:27:35 -10:00
Justin Kunimune
c83c71bc23 In its original form
I changed up a few map projections to look more like they did when they were first published. I added a triangular version of Lee, I changed AuthaGraph to have the aspect built in, and I fixed all of the ones without aspects to actually not have aspects (there was a bug there that I fixed).
I also cleaned up SVGMap a bit to try to make it work better with this great Tissot's indicatrices image I found, but the image was too messy, and I couldn't make it work.
2018-01-13 17:17:03 -10:00
Justin Kunimune
fc20d5071a Some next-level stuff
I made a better approximation of Cahill-Keyes. It's getting there; be
patient.
2018-01-10 17:47:09 -10:00
Justin Kunimune
7d84f4a1a3 Seyek-Llihac
I started on the inverse of Cahill-Keyes. I just have the arrangement
done for now; I'll do the specific projection equations next.
2018-01-09 21:15:35 -10:00
Justin Kunimune
6a6b9eac34 Garbage in, mediorcity out
I changed up the inputs a bit. Many of the raster inputs are now PNGs; I decided that even though they take up more space, JPEG artifacts aren't worth the few extra megabytes, especially since JPEG artifacts that get magnified by projection are really annoying.
I touched up the graticule SVGs by removing some annoying "z"s and thinning the lines.
I realised that Political.png was really bad, so I color-coded Political.svg and converted that to a PNG. I don't know why it's taken me so long to find a decent way of doing that. Oh, yeah, and Political.svg exists now. The default "Basic.svg" is what was "Compound.svg". It makes the two map designers more consistent.
I also updated the README accordingly.
2018-01-09 10:11:33 -10:00
Justin Kunimune
8c9f2cbbac Get cut out of the picture
I added an option to remove the unnecessary stuff on the side of the map. It makes some pretty cool looking stuff. Not as good stuff, in my opinion, since it implies that the world has hard edges, but it works real well for the map analyser, where it prevents the distorted margins from distracting from the less distorted part that actually matters.
2018-01-04 21:03:42 -10:00
Justin Kunimune
22cb631818 Over the Cahill
I've finished Cahill-Keyes! It took a lot of reading, a lot of geometry,
and a lot of if statements. But now it's perfect. Now all I need is an
inverse projection.
2017-12-28 22:02:13 -10:00
Justin Kunimune
abc3bd80f1 Where credit is due
I went through my images, recorded their sources if I could find them,
and replaced them with certifieably open-source alternatives if not.
I also fixed a minor issue with saving.
2017-08-27 15:40:49 -10:00
Justin Kunimune
3dcb0b77d4 Now accepting all (most) input
I refined my SVG parser to be open to more commands and such. It still
does not take kindly to arcs, but it's pretty darn good. I tried it out
with some new maps, and it looks great.
2017-08-26 14:39:07 -10:00
Justin Kunimune
40201f6f46 Parsing, for real this time
I implemented more advanced SVG parsing and manipulation. It's somewhat
slower now, I think because I changed the way it skips vertices to save
time, but it was necessary to enable slightly more advanced SVG reading
(which I have yet to test). All the projections work, though. I also
changed my coordinate system. I also broke the bit where it does not
draw long lines.
2017-08-25 21:06:56 -10:00
Justin Kunimune
3c8150a276 I thought I dealt with this
Eclipse (and Git, apparently) are getting confused about the fact that I
changed the case on my filenames a while ago, so let's try this again.
2017-08-21 15:59:34 -10:00
Justin Kunimune
ea02e8a2ef Code writing code
I made a program to automatically generate HTML snippets to fill the
projection page in my GH-Pages branch. It also automatically produces
nice pictures to go with it. I also threw in a nifty new transverse
feature, primarily for azimuthal maps. And I now represent properties
and types as enums. And I fixed a bug in 2 point equidistant. And fixed
some unicode issues.
2017-08-18 15:08:59 -10:00
Justin Kunimune
ab155f2c9e The Complete Set
I made inverse solutions for all my invented projections, and even threw
in a new one, "Tetrachamfer", which kind of sucks, but I felt like I
should include it for completeness's sake.  I found a bug in
MapConfigurationDialog and squashed it, as well. And I added a couple
new maps to the output folder. Oh, I never explained what the problem
with Tobler was! There was an issue with the way Z was being generated,
so last commit, I cleaned that up and may have made it slightly slower,
but I don't really care given how well it works now and how much faster
it still is than Lee (seriously, what is the deal with that?). Did I do
anything else? Not really. Next step: conic projections!
2017-07-15 16:51:38 -04:00
jkunimune
9590f6e3a8 I don't care if it's the Survivor's bathrobe!
I added more inheritance. When I think of the word "inheritance", the
first thing that comes to mind is the above quote. It's from one of the
broadsheet articles in The Bands of Mourning. Actually, most of what I
did in this commit had to do with parametrization, not inheritance. Oh,
well. It's a good quote.
Maps can have parameters now. Woo. It's an opportunity that Equal-Area
Cylindrical (very simple), my made-up map projections (not that hard a
leap), and Winkel Tripel (surprisingly difficult) currently take
advantage of. I still need to make the conic projections be
parametrized, and Tobler once I can make it be real. I also still need
to make MapAnalyzer take advantage of this newfound inheritance.
2017-07-02 22:57:02 -04:00
jkunimune
5d6f1b1d55 Gradient Descent - now with less accuracy!
I added gradient descent to the optimizing program in the hopes of
making it faster, which kind of worked, I suppose. I also made some of
the tolerances smarter on some of the iterative algorithms, and took a
few terms off of the Dixon McLaurin Series. I also have Lee centering
its Taylor Series on points closer to the points, so that's more
accurate at the poles now. And I made Tetragraph have actual numbers
attached to it rather than that 1.1 I had from guess-and check. Oh, and
I got rid of Eliptabola because it was apparently discontinuous or crazy
stiff or something, because gradient descent on it would always diverge
to NaN, and it wasn't that great of a projection, anyhow.
2017-06-11 17:00:39 -04:00
Justin Kunimune
6853216990 I'm a General! Wheeeeeeeeee!
I implemented the Lee Conformal Projection, and let me tell you, it took
a lot of work. Oh, also, I tried another family of pseudo-azimuthal-ish
projections that just kind of sucked. I think I'm going to try
optimizing some tetrahedral projections next. Hence the Lee projection.
I used a 28th-order McLaurin series for the Lee projection, so it
doesn't actually tesselate perfectly. I think I might have entered a
number wrong, because seriously?! The 28th order with six decimal places
of precision wasn't good enough? Anyway, the series was a suggestion
from Lee himself in the paper that I read on JStor, that I had to make a
JStor account for, because I couldn't get the equations literally
anywhere else on the internet. NGAHHH!
2017-05-27 20:27:38 -10:00
Justin Kunimune
da2ac57df3 More conic projections
I decided it was time to fill out my collection of conic projections.
Not sure why I never did this before.
2017-05-18 10:42:41 -10:00
Justin Kunimune
9a4f8cf966 HSB: the one true colorspace
I set it to use HSB instead of RGB. Now, darker areas have more angular
distortion, red areas are compressed, and blue areas are dilated. I also
made some neat graphics.
2017-05-17 15:11:48 -10:00
jkunimune
a0b860e3ee Actually, everything was upside down
I fixed it.
2017-03-19 12:33:48 -04:00
jkunimune
2165430e59 I've done it.
I finished the tetragraph. Everything works now. Gosh, that was awful.
Why is math so hard. iatshuip iket
2017-03-19 12:01:57 -04:00
jkunimune
f861660ebb Nevermind; I just did it myself
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.
2017-03-17 17:50:42 -04:00
jkunimune
a9c84a7881 This code does not work
But I wanted to commit it because I spent a bunch of time on this SVG
parser that apparently already exists in JavaFX.
2017-03-17 17:50:42 -04:00
jkunimune
9d3b318671 Bigger and Better
You can control the size of the map when you save it as an image now.
Yay. It's got it's own little dialog and everything.
2016-11-25 22:09:34 -05:00
jkunimune
ebce52b95d Close enough
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.
2016-11-25 14:04:07 -05:00
jkunimune
00c916be24 I made a better map projection!
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.
2016-11-23 17:26:15 -05:00
jkunimune
59ee92ce45 I fixed it this time, I swear
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.
2016-11-22 13:46:55 -05:00
jkunimune
cc1ab0b27b Bug fixes
Yep. I'm too lazy to write a more descriptive message.
2016-10-11 19:49:23 -04:00
jkunimune
5858de3dcd I made it worse
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.
2016-10-09 00:18:41 -04:00
Justin Kunimune
b225413805 Fixing all the Typos
"Orthogonal" is an understandable mistake. I don't know where I got
"Gnomic" from.
2016-05-12 09:26:53 -10:00
Justin Kunimune
3419d70a7c Through the Wormhole
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).
2016-05-12 09:26:53 -10:00
Galactic Ketchup
c6153f48c9 New Projection, New Axis
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.
2016-02-12 16:57:08 -05:00
Galactic Ketchup
15618c4013 I made a map 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.
2016-02-07 20:10:03 -05:00
Galactic Ketchup
bd812bf104 Yet More Maps
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.
2016-02-04 22:02:23 -05:00
Galactic Ketchup
fbda178399 New Jar
I forgot to update the .jar file last time. Also, there is a new input
image called Satellite. It is huge.
2016-01-29 16:04:52 -05:00