Sam Benry

Ranch Hand

Posts: 89

posted 9 years ago

I'm using the StdDraw.java and I'm trying to draw something similar to this

http://mathworld.wolfram.com/MiceProblem.html

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

http://mathworld.wolfram.com/MiceProblem.html

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

Campbell Ritchie

Marshal

Posts: 56593

172

posted 9 years ago

Try a Polygon; you will have to work out the vertices from

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

Don't know how to draw the spirals. Sorry.

*x*= rad*cos*x,*y*= rad*sin*x, 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.Don't know how to draw the spirals. Sorry.

Sam Benry

Ranch Hand

Posts: 89

Sam Benry

Ranch Hand

Posts: 89

Campbell Ritchie

Marshal

Posts: 56593

172

posted 9 years ago

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

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 ]

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 ]

Ulf Dittmer

Rancher

Posts: 42972

73

posted 9 years ago

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.

Campbell Ritchie

Marshal

Posts: 56593

172

Consider Paul's rocket mass heater. |