从数据库中的笛卡尔坐标中选择极坐标

时间:2013-02-12 14:49:07

标签: mysql coordinates coordinate-systems

在我的MySQL数据库中,我有三个字段,x,y,z代表一个位置。

我想将这些坐标转换为极坐标az,el,r,并根据这些坐标选择(例如)az在某些区域内的行。

我将如何在MySQL中执行此操作?

修改
这在是关于如何实际进行坐标转换的问题,而是,如果MySQL能够基于某种方法转换数据,然后选择数据一旦它基于转换数据的比较,使用标准对其进行转换。

2 个答案:

答案 0 :(得分:3)

解决三角......

笛卡儿=多远和多远 极地=距离多远和角度

为了转换你需要为两个已知的边解决直角三角形

你需要使用毕达哥拉斯定理来找到长边(斜边)

你需要切线函数来找到角度

r = √ ( x2 + y2 ) =毕达哥拉斯 θ = tan-1 ( y / x ) =正切函数

假设没有负值 - 那么你将不得不采用tan函数的倒数,或将它们转换为正对应值

Mysql Pythagorus

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

假设您的坐标看起来像这样....这是一个例子

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

此处的切线功能

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

答案 1 :(得分:1)

恕我直言,这实际上是一个球面坐标系数学问题,而不是特定于MySQL的问题 MySQL恰好是这个例子中的数据容器。

对于您需要先计算数学的任何解决方案,然后将方程应用于数据就成了问题。
我可以帮助MySQL,但我必须谷歌解决这些方程式,我的手指累了=)