215 Commits

Author SHA1 Message Date
Justin Kunimune
8d4acd1bde That's not like what the Earth looks!
I fixed a minor bug in my perspective projection.
2019-01-14 17:49:10 -10:00
Justin Kunimune
b2732d393a And now an inverse
I inverted it. It looks great. It even knows where to place a sharp border where the map ends. Everything I still need to do is on the Rubber-Earth side.
2019-01-14 17:48:08 -10:00
Justin Kunimune
f7d6d6ca70 Rectangles are for squares
I changed the Arbitrary maps to account for a change in file format in my Rubber-Earth repo, specifically with respect to the addition of a raster map (which I have yet to implement) and non-rectangular cells. I've got it all nice and smooth, and now it's on to raster maps!
2019-01-14 12:07:06 -10:00
Justin Kunimune
bcf925b2a7 Bring in the maps!
I threw in Danseiji O, I, II, III, and IV. I'll do the others later once I'm happier with the tearing algorithm, but for now, I think this is pretty darn rad, dude. Check out the MapAnalyzer images!
2018-12-23 16:08:24 -10:00
Justin Kunimune
33fedc06f8 The Rubber Earth
I integrated this with my other map projection repository, and laid teh groundwork for the best map projections ever! Check out that Danseiji III!
2018-12-23 12:11:54 -10:00
Justin Kunimune
1a89415e7e Don't mind me
I'm just moving the shapefile data up one directory. You'll see why.
2018-12-23 12:04:33 -10:00
Justin Kunimune
0f6f70e825 SUPERMAP
I just revised the supermap a bit.
2018-12-22 16:57:00 -10:00
Justin Kunimune
2b483ac24a Time to make my escape
Fixed a bug from a while ago where it doesn't properly escape weird
characters in HTML. Also corrected the Kavrayskiy description and
tweaked text sizes on the supermap.
2018-12-22 08:33:54 -10:00
Justin Kunimune
74cd5aca4c You intolerant fool
My tolerances were too small.
2018-09-27 20:35:08 -04:00
Justin Kunimune
b19e28e993 Thirty-seven thousand five hundred degrees
I fixed a minor issue; it was being inconsistent with the decimal separators.
2018-08-24 16:33:08 -10:00
Justin Kunimune
57a16dcde1 This town is too big for the two of us
I changed the sizes a bit.
2018-08-07 22:26:06 -04:00
Justin Kunimune
ce16ecddca Another!
I rebuilt it for release again.
2018-08-07 22:04:20 -04:00
Justin Kunimune
105a90f5af A nearly imperceptible bug
That's 104 and 100, not the other way around!
2018-08-07 22:04:01 -04:00
Justin Kunimune
e307b6d535 Final Product
I finally got the exportations to all work. I'm ready for the release!
2018-04-01 22:51:01 -03:00
Justin Kunimune
522569a11d nopenopenope
I returned to Java 8. The Java 9 javapackager just wasn't working. I
feel that I could probably get it to package properly if I kept at it,
but I don't think it's worth it; I don't even know if anyone has Java 9
on their computer, given how the java website still has Java 8 all over
the front page for some reason. The bigger display did start to grow on
me, though I have a feeling that was Java 9 correctly recognising and
responding to my 125% text size in Accessibility Settings. I went ahead
and sized everything up just a bit. I think it looks nicer.
2018-04-01 20:52:21 -03:00
Justin Kunimune
2afc0b7643 Don't be so hard on yourself.
I upped some ratings.
2018-02-21 20:53:04 -05: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
31b1f98e23 Don't put your labels on me!
I adjusted the output files; made them more distinct.
2018-02-20 21:14:38 -06:00
Justin Kunimune
29fd0e3362 New AuthaGraph
I just made another map for output, because I felt like it and didn't want to wait until I finish working with the Map Explainer to re-commit.
2018-02-20 21:07:44 -06: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
055ea75d8a Aaaaaand perfect!
I made a bunch of changes. All small ones. Together, they make my automatically-generated map a lot better. I'm finally ready to start post-processing and put these on Wikipedia!
2018-02-13 20:29:20 -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
7bcc659750 Finally! Edcent-looking maps!
I got the coastlines to correctly rebind to themselves when crossing a neatline. My projection code finally produces decent maps without post-processing! Now to fulfill my dream of replacing all the Tissot's Indicatrices images on Wikipedia!
2018-02-12 11:32:25 -10:00
Justin Kunimune
075ef87e99 To factor again
My utils package was getting pretty big, and some of them were pretty
specific, so I moved some of them to a helper package specifically for
working with imagery.
2018-02-11 16:47:16 -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
aafb6e0401 Threads are dangerous!
I found the JavaFX concurrent package and have been using it to make my
code more thread-safe. In its current state, it doesn't actually display
the progress bar correctly or disable the buttons, and the threads still
read from input while it's changing, but I wanted to save my progress,
because this has been quite the struggle thus far.
2018-02-11 12:55:27 -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
027347071c The Cahill-Keyes projection
I detached Antarctica from the Cahill Keyes projection, making it much
more true to Keyes's (did you know it's pronounced /kais/?) intention. I
still use the simpler one by default, because this is a program for
creating oblique projections, and that one works much better for
obliquity.
2018-02-08 13:12:23 -10:00
Justin Kunimune
b1e76a71ee So many ways to unfold an octohedron
I did the inverse of the Bat projection. It took some finagling to get
the parallel cutoffs like I wanted them, but all in all, I think it
looks great. Onto Cahill-Keyes!
2018-02-08 10:30:08 -10:00
Justin Kunimune
cc6d7fcddf That's not how you integrate polynomials!
I was able to get the Bat projection working without too much trouble.
It turned out that while I got my MacLaurin series right for the
conformal mapping from the disc to a hexagon, my integral was wrong. I
fixed that, but I still needed to do tho oblique trick to make it look
good enough. All in all, it works great. Now I just need an inverse.
Newton-Raphson, anyone?
2018-02-07 21:01:00 -10:00
Justin Kunimune
c13f1a2608 BECAUSE IT'S A BAT PROJECTION!
I started working on that bat projection, but as it turns out, the 12th
order MacLaurin series isn't nearly precise enough. I'll have to break
it up farther. For now, though, here you go.
2018-02-06 21:27:10 -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
28798c4cba Return of the Gene
I adapted Cahill-Keyes to my new octohedral framework. Now to start
creating more octohedral projections!
2018-02-06 16:15:31 -10:00
Justin Kunimune
9d85e98492 A Whole New WAAAAAAAAAAAAAAAterman!
I've used that reference before, haven't I?
In any case, I have successfully transfered Waterman to a new Octohedral
class that is far more generalisable than the last one. I now intend to
start moving Cahill-Keyes, and coding in Cahill-Rus, Cahill-Concialdi,
and the detachment of Antarctica. The end goal: more and better
octohedral maps in my collection.
2018-02-05 22:57:37 -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
5e01e339b9 Good documentation is its own reward
I tidied up the documentation on the BFGS stuff and updated my maps and
defaults to be informed by the new optimizations.
2018-01-31 13:22:22 -10:00
Justin Kunimune
b51f632cf5 IT WORKS!?!?
I have spent teh last week attempting to implement proper BFGS optimisation to replace my gradient descent. I have been encountering mysterious problem after mysterious problem, from random noise in my deterministic data to fake derivatives being better than real derivatives. But now it works. And I need to push this _right now_ before it breaks.
2018-01-29 21:05:56 -10:00
Justin Kunimune
76f0ce6f29 Last time on "Map-Projections"...
I forgot to push a couple of things. I just fixed the imports on MapPlotter and inserted real ellipsis glyphs and units on MapAnalyzer.
2018-01-29 21:02:55 -10:00
Justin Kunimune
00a3f2a25e Revert "Angles vs factors"
This reverts commit ed297dbd079f3cc1ce93cd3aeb2cd98a60be7351.
2018-01-24 19:05:50 -10:00
Justin Kunimune
ed297dbd07 Angles vs factors
I changed my shape distortion metric to be max angle displacement instead of stretch factor in decibels, hoping it would weigh moderate distortion higher and severe distortion lower. It didn't really do anything. I think I'll just set it back to how it was, because I liked it that way.
2018-01-24 18:48:18 -10:00
Justin Kunimune
3ff09d1ada Not bad, if I do say so myself
I finished the inverse of my new Equahedral map projection. Numerically,
it looks great, but to be completely honest, I'm dubious. I'm strongly
considering changing my average shape distortion function, because it's
giving a quite good score to Equahedral, even though Equahedral distorts
pretty much everything about the same amount, which I honestly think
should score it lower. It looks like it does shape better than Winkel
Tripel, which I just don't believe. So we'll see.
2018-01-24 13:42:58 -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
d09d3db53c My best one yet
I've invented another map projection. Well, two, technically. They are
both equal-area tetrahedrals of the same form. I scrapped the old
Equahedral and replaced it with projections having interruptions more
like Cahill's sinuses than the arbitrary holes I put in the other one.
This drastically reduces the maximum distortion and conforms better to
the sphere, without taking up too much more area. I couldn't decide
exactly how to format the meridians (they needed a joint somewhere, but
where?), so I did it two ways so I could compare them. I'll get rid of
the one that I don't like as much, which seems to be "fold". That one is
a little bit more mathematically elegant, but just distorts the vertexal
regions more.
2018-01-24 11:19:47 -10:00
Justin Kunimune
823fb3c562 You remembered!
It remembers the last directory you saved/loaded and sends you there
automatically the next time you must specify a filepath.
2018-01-22 18:42:43 -10:00
Justin Kunimune
b836d63649 Finally, a map that doesn't lie!
I implemented the one, true map projection, reverse-engineered from
spherical data. We can never be sure if this is the exact algorithm
required to convert the continents back to their natural, planar form,
but it looks pretty good to me. Perhaps with this correct map projection
in hand, we can banish the lies the government has been feeding us all
our lives. Stay flat, comrades.

Oh, I also fixed a bug in Mollweide.
2018-01-22 18:15:23 -10:00
Justin Kunimune
69c61be027 You've heard of FaceMash. Get ready for MapMash!
I added a rating system! All maps have a rating 0-4, now. Since this
rating is completely subjective, I doubt I'll put it into the main
program. I haven't actually decided what to do with it yet, but I like
having it. The criteria I used were fairly straightforward:

0 - Terrible. Do not use. There are objectively better alternatives. I
hate it.
1 - Bad. Could be worse, but using this projection reflects a lack of
thought or understanding.
2 - Okay. I can't fault anyone for using it. It's not the best, but it
is fine. Good for at least some situations.
3 - Good. People who use this know what's up.
4 - Fantastic. One of the best. There can only be four.

These ratings reflect how the projection is most often used, not
necessarily how it ought to be used.

I also now measure average distortion in Decibels, because I like the
zeroth order of magnitude better than the negative first order of
magnitude.
2018-01-22 11:58:52 -10:00
Justin Kunimune
d6eb4ddcbf Don't push that button!
I improved my button handling so that the proper buttons grey out
whenever things are happening. I ended up taking a page from JavaFX's
book and having a map from an enum to stored buttons. I also made the
plot saving thing work, since that seems to have broken at some point,
and improved some documentation.
2018-01-22 09:27:51 -10:00
Justin Kunimune
a9b5978b9c What projection even is this?
I fixed a bug relating to the display of obscure map projection titles
that seems to have cropped up with Java 9 and finally made conformal
conic behave a little bit better when it degenerates to Mercator.
2018-01-21 21:18:55 -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