Java-Gaming.org Hi !
 Featured games (83) games approved by the League of Dukes Games in Showcase (581) Games in Android Showcase (162) games submitted by our members Games in WIP (632) games currently in development
 News: Read the Java Gaming Resources, or peek at the official Java tutorials
Pages: [1]
 ignore  |  Print
 Generating random shapes  (Read 2351 times) 0 Members and 1 Guest are viewing this topic.
appel

JGO Wizard

Medals: 69
Projects: 4

I always win!

 « Posted 2005-12-19 02:52:48 »

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):

Check out the 4K competition @ www.java4k.com
swpalmer

JGO Coder

Exp: 12 years

Where's the Kaboom?

 « Reply #1 - Posted 2005-12-19 03:04:36 »

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.

appel

JGO Wizard

Medals: 69
Projects: 4

I always win!

 « Reply #2 - Posted 2005-12-19 03:12:36 »

Ahh....sounds like a good idea.

Check out the 4K competition @ www.java4k.com

Junior Devvie

Java games rock!

 « Reply #3 - Posted 2005-12-20 01:13:04 »

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

 1  2  3  4  5  6  7 `                 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).

Junior Devvie

Java games rock!

 « Reply #4 - Posted 2005-12-20 01:18:02 »

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

JGO Wizard

Medals: 69
Projects: 4

I always win!

 « Reply #5 - Posted 2005-12-20 08:41:37 »

Thank you, that will come in handy

Check out the 4K competition @ www.java4k.com