kasperhj
kasperhj

Reputation: 10482

Selecting polar coordinates from cartesian coordinates in a database

In my MySQL database I have three fields, x,y,z representing a position.

I would like to transform these coordinates into polar coordinates az,el,r, and based on these, select the rows where (e.g.) az are within some region.

How would I go about doing this in MySQL?

EDIT:
This in not a question of how to actually do the coordinate transformation, but rather, if MySQL is capable of transforming the data based on some method, and then selecting data once it is transformed with a criterion based on a comparison of the transformed data.

Upvotes: 0

Views: 584

Answers (2)

Raad
Raad

Reputation: 4658

IMHO this is really a spherical coordinate system maths problem, not a MySQL-specific question.
MySQL just happens to be the data container in this instance.

For any solution you need to work out the maths first, then it becomes a matter of applying the equations to the data.
I can help with MySQL, but I'd have to Google solving these equations and my fingers are tired =)

Upvotes: 1

Hituptony
Hituptony

Reputation: 2860

Solve the Triangle ...

Cartesian = How far along and how far up Polar = How far away and what angle

In order to convert you need to solve the right triangle for the two known sides

you need to use Pythagoras theorem to find the long side (hypotenuse)

you need the Tangent Function to find the angle

r = √ ( x2 + y2 ) = Pythagoras θ = tan-1 ( y / x ) = Tangent Function

assuming there's no negative values - then you would have to take the inverse of tan function, or convert them to their positive counterpart

Mysql Pythagorus

SQRT((POWER(242-'EAST',2)) + (POWER(463-'NORT',2))) < 50

assuming your coordinates look like this.... here is an example

http://www.tek-tips.com/viewthread.cfm?qid=1397712

Tangent Function here

http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_tan

Upvotes: 3

Related Questions