Making huge circles
As for the huge circles which could span multiple large cities - I made a prototype in MS Excel that I've converted into the Python code snippet linked here. The inputs that can be edited are the values of r for the radius, and show_plot to either True/False to show/hide the plot. The output is the sequence of road segments to lay out a 45° half-quarter arc, or one-eighths of a circle, that can then be rotated and flipped to make the full circle ...
10:1
4:1
4:1
2:1
2:1
2:1
2:1
2:1
1:1
1:1
2:1
1:1
1:1
1:1
1:1
... which has been condensed into the below format. The left number is the length of the 1-tile wide road segment, while the right number is how many times that segment is repeated:
10,1
4,2
2,5
1,2
2,1
1,4
The compressed output can be saved as a picture, a text file, or on pen & paper like a compact "cheat sheet", instead of having to visually count off tiles on a diagram. Nevertheless, the plot can still be useful if only for double-checking the placement, using $10/segment roads as a "tape measure" of sorts as described in a previous entry. A fun mini meta-game is to try to memorize part or all of the sequence while laying down the arc and seeing how big of a circle you can make without peeking at the cheat sheet.
One subtle but important caveat: since we're quite literally squaring the circle. there's bound to be some distortion, so the output is not perfect, especially towards the end of the 45° arc where it becomes diagonal. Simply reversing the sequence and continuing on from that point will not always yield the desired results, instead it is more reliable to start the other half from the opposite direction, e.g. if you started at the 12-o-clock position towards 1-o-clock for the first half, start the second half from the 3-o-clock position towards 2-o-clock until they meet in the middle.
Try it out first with smaller circles before committing to bigger circles. These can then be paired with the angles to draw almost any kind of shape, from "wavy" sinusoids to DNA double-helixes.
The spirals can be approximated by generating a series of circular arcs with increasing size:
- Constant width similar to an Archimedean spiral, using semicircles whose radii are multiples of 1, 3, 5, 7, and so on
- Logarithmic spiral using quarter-circles whose radii are multiples of some constant, e.g. 2: 1, 2, 4, 8, 16, 32, …
- Fibonacci spiral using quarter-circles whose radii are multiples of the Fibonacci sequence: 1, 1, 2, 3, 5, 8, 13, ...
Natural-looking curvy roads can be created by appending arcs of varying radii. Then the road segments can be connected together with combinations of FAR segments, reverting back and forth to the curve as needed. Though since SC4 is still a grid-based game, there’s really not much benefit to using curved roads aside from aesthetics. Usually I treat them just like a natural barrier like a steep slope or water line, and just build/zone stuff around them, then demolish the roads once the shape has been filled in.
I tried it out again on an empty region of 5x5 large flat cities with 256 tiles on each side. The table on the left is the generated outputs of the script for the largest/outermost circle down to the smallest/innermost circle, which is itself larger than and completely surrounds the central large city tile. For the Circlejerk city, I made concentric circles whose radii are multiples of 10 tiles: 10, 20, 30, and so on. For the Kurôzu-Cho city, I used semi-circles with radii of 10, 30, 50, 70, and so on. For the Galactic City, I used quarter-circles with radii of 10, 16, 26, 42, 68, 110, and so on (Fibonacci sequence x2).

-
1


0 Comments
Recommended Comments
There are no comments to display.
Sign In or register to comment...
To comment in reply, you must be a community member
Sign In
Already have an account? Sign in here.
Sign In NowCreate an Account
Sign up to join our friendly community. It's easy!
Register a New Account