One thing I've done in the past for island shapes is to use perlin noise minus a circular shape. It usually produces one big island and some little things off on the side. You can use flood fill or smoothing to remove any small noise.
Here's a demo (flash) that I wrote for this question this question.
For each location (x, y)
in the noise bitmap, compute the distance from the center, normalized so that the bitmap is 2x2:
function distance_squared(x, y):
dx = 2 * x / width - 1
dy = 2 * y / height - 1
# at this point 0 <= dx <= 1 and 0 <= dy <= 1
return dx*dx + dy*dy
Location (x, y)
is part of the island if perlin_noise(x, y) > 0.3 + 0.4 * distance_squared(x,y)
. In the demo you can vary the two constants to see the effects you can get.
I don't think these islands look quite the way you want but this technique might be useful for you in combination with other techniques you're using.
One thing I've done in the past for island shapes is to use perlin noise minus a circular shape. It usually produces one big island and some little things off on the side. You can use flood fill or smoothing to remove any small noise.
Here's a demo (flash) that I wrote for this question.
For each location (x, y)
in the noise bitmap, compute the distance from the center, normalized so that the bitmap is 2x2:
function distance_squared(x, y):
dx = 2 * x / width - 1
dy = 2 * y / height - 1
# at this point 0 <= dx <= 1 and 0 <= dy <= 1
return dx*dx + dy*dy
Location (x, y)
is part of the island if perlin_noise(x, y) > 0.3 + 0.4 * distance_squared(x,y)
. In the demo you can vary the two constants to see the effects you can get.
I don't think these islands look quite the way you want but this technique might be useful for you in combination with other techniques you're using.
One thing I've done in the past for island shapes is to use perlin noise minus a circular shape. It usually produces one big island and some little things off on the side. You can use flood fill or smoothing to remove any small noise.
Here's a demo (flash) that I wrote for this question.
For each location (x, y)
in the noise bitmap, compute the distance from the center, normalized so that the bitmap is 2x2:
function distance_squared(x, y):
dx = 2 * x / width - 1
dy = 2 * y / height - 1
# at this point 0 <= dx <= 1 and 0 <= dy <= 1
return dx*dx + dy*dy
Location (x, y)
is part of the island if perlin_noise(x, y) > 0.3 + 0.4 * distance_squared(x,y)
. In the demo you can vary the two constants to see the effects you can get.
I don't think these islands look quite the way you want but this technique might be useful for you in combination with other techniques you're using.
One thing I've done in the past for island shapes is to use perlin noise minus a circular shape. It usually produces one big island and some little things off on the side. You can use flood fill or smoothing to remove any small noise.
Here's a demo (flash) that I wrote for this question.
For each location (x, y)
in the noise bitmap, compute the distance from the center, normalized so that the bitmap is 2x2:
function distance_squared(x, y):
dx = 2 * x / width - 1
dy = 2 * y / height - 1
# at this point 0 <= dx <= 1 and 0 <= dy <= 1
return dx*dx + dy*dy
Location (x, y)
is part of the island if perlin_noise(x, y) > 0.3 + 0.4 * distance_squared(x,y)
. In the demo you can vary the two constants to see the effects you can get.
I don't think these islands look quite the way you want but this technique might be useful for you in combination with other techniques you're using.