Grid rotation question for you math geniuses...

Started by
5 comments, last by WesLiu76 24 years, 6 months ago
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.

Advertisement
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.

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

DESIGN FANATIC
David Abresch
abre1657@blue.univnorthco.edu
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).]

Hi ,
It would be as simple as :

B = A [ j , 6 - i ]<P> <IMG SRC="http://www.gamedev.net/community/forums/ubb/smile.gif">

--MFC (The Matrix Foundation Crew)
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

Currently Network Engineer but soon to be full-time Game Developer!!
Hi,
It is as simple as :

B = A [ j , 6 - i ]<P><BR><P>——————<BR>–Ali Seyedof (It's all dark !)

--MFC (The Matrix Foundation Crew)

This topic is closed to new replies.

Advertisement