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

Форум работает в режиме архива, только для чтения и поиска.
Архив 2004 Архив 2007 Архив 2013

 
 
Опции темы Поиск в этой теме Опции просмотра
  #11  
Старый 06.08.2009, 17:15
гость

 
Сообщений: n/a

Сообщение от zaidite Посмотреть сообщение
"плоскость" - имеется в виду плоскость четырёхугольника или плоскость прямоугольника, поэтому четыре точки.
Вы видимо путаете понятия плоскости и фигуры (многоугольника, в данном случае) на плоскости. Плоскость - бесконечна. Трех точек для её определения достаточно в 3D. А у вас тут видимо даже не трехмерное пространство, а лишь двухмерное.

Цитата:
"алгоритм проецирования точки k" - должен (по моему представлению ), преобразовывать четырёхугольник А1 В1 С1 D1 в прямоугольник АВСD и пересчитывать координаты точки k в зависимости от преобразования.
Это никто не называет проецированием. Перспективное преобразование, как говорит MBo, - вот что это.

В книжке на которую ссылается MBo написана общая формула такого преобразования:
x' = \frac{ax + by + c}{gx + hy + 1}
y' = \frac{dx + ey + f}{gx + hy + 1}
Восемь неизвестных коэффициентов. Из ваших четырех соответствующих пар точек у вас получится восемь уравнений (по два уравнения для каждой координаты x и y). Восемь линейных уравнений с восьмью переменными. Выписываете их в виде матрицы и решаете любым способом, например Гауссом-Жорданом.
  #12  
Старый 06.08.2009, 19:05
Новичок

Отправить личное сообщение для zaidite Посмотреть профиль Найти все сообщения от zaidite
 
Регистрация: 05.08.2009
Сообщений: 9

Благодарю за информацию. Мне бы почитать литературу по этому поводу. Свою задачу я буду решать флеш-программированием. Как перемножить матрицы я представляю, а вот с этими преобразованиям столкнулся впервые. Поэтому ещё пока трудно представляю себе как применить эти уравнения в своей задаче. Сейчас нашёл информацию о полиномиальных преобразованиях.
http://gis-lab.info/qa/polynom.html
Надеюсь это то о чём Вы и MBo мне говорите?...
  #13  
Старый 06.08.2009, 19:29
MBo MBo вне форума
Местный

Отправить личное сообщение для MBo Посмотреть профиль Найти все сообщения от MBo
 
Регистрация: 21.09.2006
Адрес: Новосибирск
Сообщений: 1,374

нет, в данном случае преобразование полиномиально-рациональное
  #14  
Старый 06.08.2009, 19:44
гость

 
Сообщений: n/a

Сообщение от zaidite Посмотреть сообщение
Как перемножить матрицы я представляю,
Да тут их инвертировать надо, а не перемножать.

Цитата:
Поэтому ещё пока трудно представляю себе как применить эти уравнения в своей задаче.
А чё непонятно-то?

Смотри, у тебя есть набор из четырех пар соответствующих точек: точки A, B, C, D переходят в A1, B1, C1, D1 под действием преобразования.

Подставляешь их координаты в общую формулу преобразования что написана выше, получаешь из каждой пары точек по два уравнения. Например для пары A -> A1:

Код:
A1_x = (a * A_x + b * A_y + c) / (g * A_x + h * A_y + 1)
A1_y = (d * A_x + e * A_y + f) / (g * A_x + h * A_y + 1)
Умножаем всё на знаменатель, там переносим слагаемые, и получим, например, из первого уравнения (для A1_x = ...):
Код:
A_x*a + A_y*b + c - A1_x*A_x*g - A_1*A_y*h = 1
Тоже самое делаешь с остальными семью уравнениями.

А дальше идёт уже чистая линейная алгебра. Не хочу рассказывать то что общеизвестно, читай например http://ru.wikipedia.org/wiki/%D0%A1%D0%9B%D0%90%D0%A3
  #15  
Старый 06.08.2009, 19:51
Новичок

Отправить личное сообщение для zaidite Посмотреть профиль Найти все сообщения от zaidite
 
Регистрация: 05.08.2009
Сообщений: 9

MBo,
в таком случае, хотелось-бы разобраться в начале в концепциях этих преобразований. Какие бывают, чем отличаются. Общий у них принцип или у каждого преобразования свой. Какое преобразование применимо в моём случае. А то что-то я начал теряться. Просветите, пожалуйста в общих чертах.
Та ссылка, которую Вы давали, о преобразовании в русскоязычной информации, именно то, что мне нужно с одной стороны. А с другой стороны, для меня там не хватает теории и пояснений действий. Сразу даются уже готовые решения и описание кодом С++. Я же собираюсь делать по сути то-же самое, но во флеше AS 2.0. Но перед тем как сесть за код, хотелось бы прийти к пониманию сути самого процесса. Буду очень признателен за помощь.
  #16  
Старый 06.08.2009, 20:53
MBo MBo вне форума
Местный

Отправить личное сообщение для MBo Посмотреть профиль Найти все сообщения от MBo
 
Регистрация: 21.09.2006
Адрес: Новосибирск
Сообщений: 1,374

> хотелось-бы разобраться в начале в концепциях этих преобразований
Можно для начала почитать об аффинных преобразованиях, они проще, и статей в инете очень много. На их примере можно разобраться в концепции однородных координат, и как преобразования связаны с умножением вектора на матрицу и т.п.
  #17  
Старый 06.08.2009, 21:19
Новичок

Отправить личное сообщение для zaidite Посмотреть профиль Найти все сообщения от zaidite
 
Регистрация: 05.08.2009
Сообщений: 9

MBo,
Благодарю за информацию. Буду разбираться.

Гость, в формулах, которые ты даёшь, вроде всё ясно.
Координаты вершин у нас есть. Не пойму каким образом находим восемь неизвестных коеффициентов.
Если можешь, подоступнее, опиши сам принцип, можно без примеров. С первоначальной точкой понятно. Это точка - до того как её стали перемещать. Конечная точка, тоже ясно. Это та первоначальная точка, которую переместили на новую позицию. Вот с коэффициентами не совсем ясно. Что это такое? Для чего нужны и с помощью каких известных нам данных вычисляются.
  #18  
Старый 06.08.2009, 21:56
гость

 
Сообщений: n/a

Сообщение от zaidite Посмотреть сообщение
Координаты вершин у нас есть. Не пойму каким образом находим восемь неизвестных коеффициентов.
Решением системы линейных алгебраических уравнений. Выражение "метод Гаусса" нам что-нибудь говорит? Если нет, то срочно открываем любой учебник по линейной алгебре и читаем в нем первую главу.

Цитата:
Вот с коэффициентами не совсем ясно. Что это такое? Для чего нужны
Ну как же, зная их ты получишь формулу преобразования, в которую, подставив вместо x и y координаты своей точки k, то получишь координаты её "проекции". Тебе ведь именно это и нужно?

Цитата:
и с помощью каких известных нам данных вычисляются
Координат точек A, B, C, D, A1, B1, C1, D1
  #19  
Старый 06.08.2009, 22:00
гость

 
Сообщений: n/a

Сообщение от гость Посмотреть сообщение
Решением системы линейных алгебраических уравнений. Выражение "метод Гаусса" нам что-нибудь говорит? Если нет, то срочно открываем любой учебник по линейной алгебре и читаем в нем первую главу.
Забыл предупредить - учебники, где первая глава про детерминанты сразу выкидываем на помойку.
  #20  
Старый 06.08.2009, 22:36
Новичок

Отправить личное сообщение для zaidite Посмотреть профиль Найти все сообщения от zaidite
 
Регистрация: 05.08.2009
Сообщений: 9

Ок. Спасибо, Гость. Направления для изучения понятны. Благодарю за помощь.
 


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск всех возможных путей из одной вершины, до другой Xavier Teodonius Графы 5 03.05.2009 16:01
Две плоскости gamerfire Вычислительная геометрия 0 21.08.2008 23:10
Поиск многоугольников на плоскости гость Вычислительная геометрия 4 12.05.2008 19:39
Точки на плоскости. Wasya Вычислительная геометрия 4 20.02.2008 14:15
Разворот плоскости к наблюдателю (Ортогональное проецирование...) Pyctuk Вычислительная геометрия 0 03.01.2008 15:44