Sunday, October 9, 2016

Splitting is there - rotating is not

In last night's post, I said that splitting is almost there.  Splitting is now complete.  Also, the more diverse shapes (triangle, diamond, B, C, L, etc.) from which the supercontinent is generated have added to the diversity of output.  I shall add a few more shapes and variations (mirroring horizontally and vertically, for example) to finish that part out.  So far, the C and L shapes are producing the best results.

The shapes are defined in formatted text file, with coordinates in a 0..1 range, representing screen space with (0,0) at upper left and (1,1) at bottom right.  The normally 2:1 aspect ratio of the map images needs to be taken into account or shapes end up wider than intended.  Here's an example:

@Diamond:
0.5,0.2
0.6,0.5
0.5,0.8
0.4,0.5;


In general, though, I'm pretty happy with the results I'm seeing, both from the new supercontinent shapes and from the other changes I've made to the splitting code.

Supercontinent generated from a base C shape.

Alas, I'm now starting to wonder if the splitting code is really even necessary.  I could just use a variant of the polygon shape + 2D midpoint displacement technique I'm using for the supercontinents to produce a set of continents. Something to consider, perhaps.  One downside is that I would lose the puzzle-piece-like manner in which some continents sometimes fit together, like Africa and South America.  On the other hand, depending upon the shape of the split and the splitting operations, sometimes that isn't very apparent anyways - though sometimes it is very apparent.  It is not very apparent in either of the examples for this evening's post, though.


Plates resulting from splitting, shifting, and rotating the C supercontinent


But I need to revisit the code for rotating.  In the example above, the tan and green plates should have had a "hinge rotate" apart, but instead rotated to overlap each other.  The code I've got that determines which direction to rotate is simply wrong.  It is only two lines of code, but the logic is flat out wrong - and I'm not yet sure what the logic should be.  I'll sleep on that.

The only two other changes to existing functionality that I wish to make.  The first is adjusting the probability table that decides upon split and shift, rotate, hinge rotate, or doing nothing, per each plate.  The second is making the initial shift have a greater minimum value.  As it stands, sometimes the initial split of a supercontinent fails to separate the two resulting plates very much.

Then its on to the tectonics concepts I discussed in yesterday's post.

Another set of plates resulting from splitting a C-shaped supercontinent



No comments:

Post a Comment