Saturday, 2 August 2014

Making Circular Rooms on Isometric Maps

Once upon a time there was a wizard who was forced to work in a rectangular laboratory where the feng shui was all wrong and magical eddies formed in the corners and besides they were kinda dark which reminded him of the way his homunculus would go off and sulk when the wizard wouldn't let him do the important bits and it blew his concentration and none of his rituals or traps or evil plans came to anything so when the party showed up he wasn't even there for the boss fight and it was this huge anti-climax and everyone said the campaign sucked anyway and it turned into this huge nasty thread on reddit and everybody started playing story games instead.

Dungeons need round rooms.

Unfortunately, round rooms are tricky to draw on isometric (or axonometric) paper. With a top-down map you can easily use a compass, trace a quarter or shot glass or whatever.  I recommend this - I like to think I can draw and apparently even I can't free-hand a small circle very well:

I suck - anyone have a shot glass?
On an isometric graph, it gets even trickier, because the circle is foreshortened into an oval. But what sort of oval?

I find it helpful to make guide-marks.

The guide-marks in the four cardinal compass directions are easy enough to work out: if you have a circle with a three-square radius, you just count three squares north, east, south and west, leaving a guide-mark at each of the four spots.

But how wide to make the oval?  How tall?  The red and blue ovals are two alternatives that pass through the four guide-marks.  The red circle isn't bad, but it's not quite right.


Fortunately, we can work out the diagonal distances with a little math.  We know where the northern guide-mark goes, but what about the northeast (or southwest)?  That would tell us how wide to make the circle.  What about the northwest (or southeast)?  That would tell us how tall to make the oval.

Since we're using graph paper, we can use graph coordinates and a tiny bit of math to figure out where the diagonal should go.  The question to ask is this: how far north (or west) does the NE diagonal reach?  The answer is:

coordinate = sin( radians(45) ) * circle radius

sin is a trigonometric function, and the radians function converts an angle in degrees to the same angle in a funky unit called radians.  (Most sin function implementations expect radians.)  These functions are available in both Google Docs Spreadsheets and Excel.

For a radius-3 circle, you should get an answer that rounds to 2.1.

Photoshoppery

If you're using photo-editing software like Photoshop or Gimp, this is the only measurement you need.  (If you don't like doing calculations math, I'll provide a handy table for you, below.) Measuring this out on the graph paper looks like this:


I measured toward the southeast, but any direction would have done just as well.  The point where the dotted lines cross is also a point on the circle.  In your editing software, draw an oval that goes through all five points.

This isn't a Photoshop tutorial, but briefly: use the oval tool set to 'path' mode.  Start at the circle's center, click and drag.  Then hold down the Alt key to force the oval to be centered on the starting point.  Drag around until the oval you're creating passes through all five points, then release.  Use the 'stroke path' command to turn your path into a usable outline.

It should look like this:


The Traditional Way

If you're drawing a map by hand on graph paper, you'll probably need more guides that this.  As a reminder, guides can be drawn in any direction - here I've added the 45-degree diagonal reaching to the northeast:



We've drawn diagonals at 45-degree increments, so for the next level we'll cut that in half: 22.5 degrees.

We need a bit more math. I simplified before, because the north and east coordinates for a 45-degree diagonal are the same, but they won't be for our next set of diagonals.  The coordinates are:

coordinate 1 = sin ( radians( angle ) ) * radius
coordinate 2 = cos ( radians( angle ) ) * radius

For a radius-3 circle, our two new coordinates are: 1.1 and 2.8.  Mark your three coordinates (1.1, 2.1, and 2.8) on each of the four axes, then draw in guide lines for them, parallel the grid lines on your paper.


Use a ruler to make the guides nice and straight or the inaccuracies will add up and your circle will suck, and we'll be back to sulking homonculi all over again.

Admittedly it looks a bit intense, but it's fairly straight forward once you try it.  But what the hell is it for?  It makes more sense once you visualize your circle in there, and how it passes through the guide intersection points:


Rendering the Circle

You're now ready to pencil in your circle.  While you're doing this, there's one last bit of information that will help you: the angle of the curve at various points.  These are called the tangents (a tangent is a line that just touches a curve).

The cardinal tangents are easy to work out: they follow the grid lines:



The 45-degree diagonal tangents are also easy to work out - they're horizontal and vertical lines on your paper:

The Final Strokes

Now, since you're doing this traditionally, you've got no choice but to extrapolate from your guides and hand-draw in the curves.  This usually takes me a couple of tries for each segment, so I use a light touch and keep an eraser handy, but we have plenty of support from the all of the guides we've built up:



Do your circle pencil, of course, only going over it in ink when you're happy with your pencil version. The finished product should hopefully look something like this:



All ready for some magical rituals!

That Chart I Mentioned

If you don't have a calculator handy, you can use this chart:


If your wizard needs a lab bigger than 32 grid squares across, she'll have to use the equations. Comes with the territory.

Circles on the Brain

Of course, there's a reason I'm obsessing about circles. Once you know how to do a circle, you can use portions of circles to make all sorts of interesting things.

Here's the the start of a map I'm working on for an upcoming adventure, the hull of a mighty ark:


This has five layers of semicircles at each end of the ark.. which took a little while.

Thanks again to everyone who's been supporting my adventures on Patreon!