【问题标题】:Selecting polar coordinates from cartesian coordinates in a database从数据库中的笛卡尔坐标中选择极坐标
【发布时间】:2013-02-12 14:49:06
【问题描述】:

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

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

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

编辑:
这在不是如何真正进行坐标变换的问题,而是,如果MySQL能够基于某种方法来变换数据,然后选择数据一次使用基于转换后数据比较的标准进行转换。

【问题讨论】:

  • 那我在参考资料中回答了你的问题?

标签: mysql coordinates coordinate-systems


【解决方案1】:

解三角形...

笛卡尔 = 沿多远,向上多远 Polar = 距离多远,角度多大

为了转换,您需要求解两个已知边的直角三角形

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

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

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

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

Mysql 毕达哥拉斯

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

【讨论】:

    【解决方案2】:

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

    对于任何解决方案,您都需要先进行数学运算,然后再将方程应用于数据。
    我可以在 MySQL 方面提供帮助,但我必须用 Google 解决这些方程式,而且我的手指很累 =)

    【讨论】:

    • 我编辑了帖子以强调这不是数学问题。假设它与坐标无关,但是,例如,必须在 mysql 之前处理的价格应该基于处理价格的某些标准进行选择。我想象某种存储过程。
    • 太好了 - 不清楚您要从哪种方法开始。
    猜你喜欢
    • 1970-01-01
    • 2015-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多