Generating random shapes

Hello,

I’m trying to make a game for the 4k competition, and what I want to do is to generate a random shape object that I can then fill with whatever.

I do have some java classes that can generate a random shape, but they are all huge. Is there any way of generating a random shaped object with a very few lines of code?

The shape needs to be pretty smooth, and edges curved.

Example (what I did in photoshop):

http://www.private.is/arni/randshape.gif

The first thing that comes to mind is to use polar coordinates to sweep around a circle in 3–10 steps but vary the radius by a random amount. Use a GeneralPath and “curveTo” to get it smoothed out.

Ahh…sounds like a good idea.

You can generate quite nice results automatically by simply plotting a fourier series over its entire period, i.e.



                 N
               -----
                \    /r1(n) cos(n t)   r2(n) sin(n t)\
                 )   |-------------- + --------------|
                /    |          2                2   |
               ----- \   (n + 1)          (n + 1)    /
               n = 0


plotted from t = 0…2 pi in polar coordinates.

The (n+1)^2 in the denominators have been selected to increase the smoothness of the graph (so violently oscillating terms have small impact).

Oh, the r1(n) and r2(n) are meant to be random numbers between 0 and 1.

Thank you, that will come in handy :slight_smile: