2013-02-12 3 views
0

В моей базе данных MySQL у меня есть три поля: x,y,z, представляющие позицию.Выбор полярных координат из декартовых координат в базе данных

Я хотел бы преобразовать эти координаты в полярные координаты az,el,r, и на их основе выберите строки, в которых (например,) az находятся в пределах некоторого региона.

Как я могу сделать это в MySQL?

EDIT:
Это в не вопрос о том, как на самом деле сделать преобразование координат, а, если MySQL способен преобразовывать данные на основе какой-то метод, а затем выбрать данные после него преобразуется с критерием, основанным на сравнении преобразованных данных.

+0

Тогда я ответил на ваши вопросы в своей ссылке? – Hituptony

ответ

3

Решить треугольник ...

декартовы = как далеко и как далеко вверх Polar = Как далеко и какой угол

Для того, чтобы преобразовать вам нужно решить правильный треугольник для двоих известные стороны

вы должны использовать теорему Пифагора, чтобы найти длинную сторону (гипотенуза)

вам нужно Tangent функцию, чтобы найти угол

r = √ (x2 + y2) = Пифагор θ = tan-1 (y/x) = тангенс Функция

предполагая, что это не отрицательных значений - тогда вы должны принять обратный тангенс функции, или превратить их в позитивном аналог

Mysql Pythagorus

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

Предполагая, что ваши координаты выглядят следующим образом. Вот пример

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

Tangent Функция здесь

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

1

ИМХО это действительно сферической системе координат по математике проблемы, а не MySQL-конкретный вопрос.
В этом случае MySQL просто является контейнером данных.

Для любого решения вам необходимо сначала выработать математику, затем это станет вопросом применения уравнений к данным.
Я могу помочь с MySQL, но мне нужно было бы решить эти уравнения, и мои пальцы устали =)

+0

Я отредактировал сообщение, чтобы подчеркнуть, что речь идет не о математике. Предположим, что это не имело ничего общего с координатами, но, скажем, цена, которую нужно было обработать до того, как mysql должен выбрать на основе некоторого критерия обрабатываемых цен. Я представляю себе какую-то складскую процедуру. – kasperhj

+0

Это здорово - неясно, к какому подходу вы искали для начала. – Raad