• Create Account

## Grid rotation question for you math geniuses...

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

6 replies to this topic

### #1WesLiu76  Members

122
Like
Likes
Like

Posted 10 October 1999 - 08:21 AM

You know you've been out of college too long when you forget your matrix calculus.

Question:
Say you have a 5x5 grid, and perform a 90 degree clockwise rotation around the middle cell (3,3). Is there an equation to calculate the new row and col based on the cell's pre-rotation row,col?

I know there is an equation but I can't remember plus I sold all my college math books back.

Thanks in advance for any help.

Wesley

### #2 Anonymous Poster_Anonymous Poster_*   Guests

Likes

Posted 06 October 1999 - 02:32 PM

Umm.. I'll try here, not sure if it works though and it might not be a good method (probably slow). I've made the center of the matrix to be (0, 0), but that's easily changed.

First I get the angle of the coordinate.

angle=tan(OLD_Y/OLD_X)

angle+=90

I find the radius, which is OLD_Y squared times OLD_X all square rooted, then the new coordinates as followed:

...or maybe I switched the cos and sin.

### #3 Anonymous Poster_Anonymous Poster_*   Guests

Likes

Posted 06 October 1999 - 02:33 PM

Umm.. I'll try here, not sure if it works though and it might not be a good method (probably slow). I've made the center of the matrix to be (0, 0), but that's easily changed.

First I get the angle of the coordinate.

angle=tan(OLD_Y/OLD_X)

angle+=90

I find the radius, which is OLD_Y squared times OLD_X squared and all square rooted, then the new coordinates as followed:

...or maybe I switched the cos and sin.

### #4Turtle  Members

122
Like
Likes
Like

Posted 06 October 1999 - 03:55 PM

I haven't taken calculus so I might be thinking about this problem wrong, but it seems to me that if you are using straight lines (row and columns kind of need this) all you have to do is switch the x and y coordinates:
~ ~ ~ ~ ~ ~ 1 ~ ~ ~
1 2 3 4 5 ~ 2 ~ ~ ~
~ ~ ~ ~ ~ becomes ~ 3 ~ ~ ~
~ ~ ~ ~ ~ ~ 4 ~ ~ ~
~ ~ ~ ~ ~ ~ 5 ~ ~ ~

Then flip it vertically over the x,y axis

~ 1 ~ ~ ~ ~ 5 ~ ~ ~
~ 2 ~ ~ ~ ~ 4 ~ ~ ~
~ 3 ~ ~ ~ becomes ~ 3 ~ ~ ~
~ 4 ~ ~ ~ ~ 2 ~ ~ ~
~ 5 ~ ~ ~ ~ 1 ~ ~ ~

Did I do something incorrectly?

I think this would work for curved lines to.

------------------
Tell the truth and you will never fear someone will figure out you lied.
<<I'm sure I'm quoting someone out there, wish I knew who!>>
David Abresch

### #5Splat  Members

122
Like
Likes
Like

Posted 08 October 1999 - 04:23 PM

Flipping the X and Y coordinates certainly will not work ;( There are two ways of doing this. If you are just going to be dealing with a 5x5 array of cells and no other size, take the time to generate a static conversion table, so that given a cell's X and Y you access a structure containing the cell's new coordinates.

Otherwise, if you will be dealing with variable size arrays, just use the trig ;(

[This message has been edited by Splat (edited October 08, 1999).]

### #6Seyedof  Members

123
Like
Likes
Like

Posted 10 October 1999 - 08:16 AM

Hi ,
It would be as simple as :

B [ i , j ] = A [ j , 6 - i ]

### #7Seyedof  Members

123
Like
Likes
Like

Posted 10 October 1999 - 08:21 AM

Hi,
It is as simple as :

B [ i , j ] = A [ j , 6 - i ]

------------------
--Ali Seyedof (It's all dark !)

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.