Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Преобразовании графического образа


Автор: Artemon 13.12.2006, 12:26
У меня есть несколько геодезических координат и соответствующие им координаты на экране монитора

Например:

ШИРОТА = 61.398346, ДОЛГОТА = 55.304456
ШИРОТА = 61.377728, ДОЛГОТА = 55.300786
ШИРОТА = 61.371572, ДОЛГОТА = 55.306372
ШИРОТА = 61.363432, ДОЛГОТА = 55.309046

X = 2337, Y = 304
X = 2131, Y = 368
X = 2070, Y = 270
X = 1989, Y = 223

Задача:
            Тыкнуть в картинку на экране и получить геодезические координаты.

Я знаю что это нужно делать с помощью аффиного преобразования, но в сети ничего толкового пока не нашел.

Автор: DENNN 13.12.2006, 13:54
Если точность не важна, то можно просто посчитать по пропорции.

Автор: Artemon 13.12.2006, 15:03
Точность важна

Автор: DENNN 13.12.2006, 18:25
мдя слова "точность важна" обычно сопровождаются цифрами требуемой точности...

Если стоит математическая задача точного пересчета, то прежде надо выяснить в какой проекции отображаются данные.
Т.е. какой из способов отображения поверхности шара на плоский монитор выбран. В любом случае аффиные преобразования - это грубо и будет работать только для небольшого участка местности. 
Если не очень понятно, о чем я, то ответь мне на вопрос, как будет выглядеть в твоем случае сетка из параллелей и меридианов (прямоугольная, концентрическая, линии меридианов сходятся к верхней центральной точке)?

p.s. по указанным координатам получается участок местности ~ 25 км по широте и порядка полукилометра по долготе. Собственно на таком небольшом участке искажения за использования любого из видов трансформации будут несущественны. smile

Автор: Artemon 13.12.2006, 20:47
Для начала я хочу сделать прямоугольную проекцию.

P.S.
     Очень рад что на вопросы отвечает человек, так или иначе, разбирающийся в картографии.

Автор: Earnest 14.12.2006, 09:50
Афинное преобразование, это всего лишь:
X = a0*x + a1*y+ a2;
Y = a3*x + a4*y + a5;
Т.е. 6 коэффициентов, которые линейно связывают исходную и конечную системы координат.
Вычисляются путем решения системы уравнений, по трем известным неколлинеарным точкам.
В частных случаях можно проще: например, если оси систем параллельны, достаточно одной точки привязки и масштаба по осям.

Но как уже сказал DENNN, афинное преобразование годится для пересчета в прямоугольную СК только в очень крупных масштабах и на малых участках. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)