Jump to content

  • Log In with Google      Sign In   
  • 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.

  • You cannot reply to this topic
6 replies to this topic

#1 WesLiu76   Members   -  Reputation: 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


Sponsor:

#2 Anonymous Poster_Anonymous Poster_*   Guests   -  Reputation:

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)

Then I add 90 degrees.

angle+=90

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

NEW_X=radius*cos(angle)
NEW_Y=radius*sin(angle)

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


#3 Anonymous Poster_Anonymous Poster_*   Guests   -  Reputation:

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)

Then I add 90 degrees.

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:

NEW_X=radius*cos(angle)
NEW_Y=radius*sin(angle)

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


#4 Turtle   Members   -  Reputation: 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


#5 Splat   Members   -  Reputation: 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).]


#6 Seyedof   Members   -  Reputation: 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 ]



#7 Seyedof   Members   -  Reputation: 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.



PARTNERS