воскресенье, 3 октября 2010 г.

Перевод из одной системы координат в другую.

На самом деле перевод не простой. А вот такой:


То есть у вас есть установка фотографирующая точку P (красного цвета на изображении), и задача показать ее в новой координатной системе (V, U), в данном случае это две желтые линии, они означают вектора V, U.

На самом деле после решения данной задачи, стало понятно, что она довольно тривиальная.

Решение заключается вот в чем:  мы точку P повернем на угол между (V, U) и линией l2 + a2 (угол между линией l1, l2) + a1 (угол между l1 и осью X). После поворота мы ее сдвинем на расстояние -l2, потом повернем на угол -a2, после чего можем сдвинуть ее на расстояние -1l и повернем на угол a1 и сдвинем на расстояние -O (точка из которой начинается линия l1). В итоге мы получим точку P в новых координатах (V, U).

Если грубо, то вот, что мы делаем. Мы просто всю нашу фотографирующую установку складываем к осям Y, X.

Я решение выполнил используя javascript-библиотеку Dojo Toolkit, а конкретно dojox.gfx. Приведу пример кода перевода точки P(x, y) в P(v, u):

Весь код можете скачать отсюда. Но внимание, что бы код заработал не открывайте index.html, а создайте хост на веб-сервере, скопируйте туда файлы, а уже потом обращайтесь к нему через браузер.

Спасибо за внимание! Буду рад вопросам в комментариях!

Комментариев нет:

Отправить комментарий