but I have no idea where to start... The user will input the integer N that will decide the number of sides of the polygon, but I don't know how to draw the polygon according to N...
Can anyone give me tips how to start coding this? thanks
Try a Polygon; you will have to work out the vertices from x = radcosx, y = radsinx, where rad is the radius of the enclosing circle, and x is 1*2*PI/N, 2*2*PI/N, 3*2*PI/N etc.
It is easier if you translate your Graphics2D object � the width of your display to the right and � the height downwards, and maybe also scale by 1.0 in the x direction and -1.0 in the y direction.
It is easier if you translate your Graphics2D object � the width of your display to the right and � the height downwards, and maybe also scale by 1.0 in the x direction and -1.0 in the y direction.
can you explain this more? what should I set the scale?
I don't think your approach will work, I am afraid.
The affine transforms I quoted (be grateful for small mercies, I didn't say to use shear!) simply have the effect of moving the origin to the middle of your displayed Component. Maybe it's a JPanel . . .But all you have achieved is moving the origin to the centre of the JPanel, and inverting the y-axis so + is up and - is down. Now you can work out x and y coordinates the same way you are used to on a piece of paper.
At least I think that's how it works; it si a long time since I tried that sort of drawing!
Now see if you can draw a triangle or a square centred on your JPanel. Then you can think about the spirals. [ April 15, 2008: Message edited by: Campbell Ritchie ]
That's an interesting problem. Don't look if you want to learn how to do it yourself, but I've put up a solution in the CodeBarn. It doesn't use affine transformations, but an iterative approach of calculating a corner point from the previous one. Then it starts a thread that calculates the mouse paths.
I tinkered a bit more with the code. Now the window is sized appropriately for the number of sides, and the drawing thread is properly terminated before a new one is started.
Wait for it ... wait .... wait .... NOW! Pafiffle! A perfect tiny ad!
a bit of art, as a gift, that will fit in a stocking