Russian Qt Forum
Сентябрь 21, 2024, 23:12 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Афинные преобразования: скандалы, интриги расследования.  (Прочитано 16075 раз)
Bepec
Гость
« : Май 29, 2012, 22:45 »

Ап теме.

PS Ух ё. А что такое афинные преобразования, кто нить статейку тиснет?

Записан
mutineer
Гость
« Ответ #1 : Май 30, 2012, 00:00 »

Ап теме.

PS Ух ё. А что такое афинные преобразования, кто нить статейку тиснет?

move, rotate, scale - вот это афинные преобразования
Записан
Bepec
Гость
« Ответ #2 : Май 30, 2012, 06:50 »

Умм.. Интересное название, надо будет в резюме тиснуть Улыбающийся
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #3 : Май 30, 2012, 12:24 »

Перспектива - афинное преобразование или нет? Почему?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #4 : Май 30, 2012, 18:29 »

Перспектива - афинное преобразование или нет? Почему?
Я так понял смущает слово "перспектива". Ладно, вот пример
Код
C++ (Qt)
void MkPerspective( QVector3D & p, qreal distance )
{
p.setX(p.x() * distance / p.z());
p.setY(p.y() * distance / p.z());
p.setZ(distance);
}
 
И что у нас здесь с "афинностью" ?
« Последнее редактирование: Май 30, 2012, 18:31 от Igors » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4744



Просмотр профиля WWW
« Ответ #5 : Май 30, 2012, 18:45 »

просто берем определение аффинности и смотрим: в данном случае матрица М = E * (distance / p.z()), а вектор смещения v - нулевой. значит преобразование аффинное (если z != 0).
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #6 : Май 30, 2012, 19:36 »

просто берем определение аффинности и смотрим: в данном случае матрица М = E * (distance / p.z()), а вектор смещения v - нулевой. значит преобразование аффинное (если z != 0).
Вы что-то понимаете в этом мутном определении? Я лично - почти ничего Улыбающийся И что это за "E"? И как Вы помножили матрицу на скаляр? Давайте возьмем 3 точки на одной прямой

p0 = (0, 0, 1)
p1 = (2, 0, 2)
p2 = (4, 0, 3)

p1 - медиана, применим перспективное преобразование  (distance = 1)

p0 = (0, 0, 1)
p1 = (1, 0, 1)
p2 = (1.33, 0, 1)

Теперь p1 - уже не медиана, как же так?  Улыбающийся
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4744



Просмотр профиля WWW
« Ответ #7 : Май 30, 2012, 20:22 »

определение понимаю. Е (еще ее I обозначают) - единичная матрица нужной размерности.

как может точка быть медианой? надо правильные термины употреблять Подмигивающий

в свойствах аффинного преобразования есть фраза, которая вроде как непосредственно относится к данному случаю:
Цитировать
Любые три точки, не лежащие на одной прямой и их образы соответственно (не лежащие на одной прямой) однозначно задают аффинное преобразование плоскости.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #8 : Май 30, 2012, 21:15 »

в свойствах аффинного преобразования есть фраза, которая вроде как непосредственно относится к данному случаю:
Цитировать
Любые три точки, не лежащие на одной прямой и их образы соответственно (не лежащие на одной прямой) однозначно задают аффинное преобразование плоскости.
Ну я так понимаю эти 3 точки позволяют определить систему координат и построить матрицу преобразования. Хотя это всего лишь "я полагаю", написано там так мудаковато что хз что автор имел ввиду  Улыбающийся

как может точка быть медианой? надо правильные термины употреблять Подмигивающий
А чего же не может? Любую точку можно считать вектором из начала координат. Имеем треугольник (0, 0, 0). p2. p3 и p1 - его законная медиана (хотите вектор, хотите точка)
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4744



Просмотр профиля WWW
« Ответ #9 : Май 30, 2012, 21:38 »

Ну я так понимаю эти 3 точки позволяют определить систему координат и построить матрицу преобразования. Хотя это всего лишь "я полагаю", написано там так мудаковато что хз что автор имел ввиду  Улыбающийся
да, вроде так. а написано вполне нормально для произвольного топологического пространства.
А чего же не может? Любую точку можно считать вектором из начала координат. Имеем треугольник (0, 0, 0). p2. p3 и p1 - его законная медиана (хотите вектор, хотите точка)
тогда другое дело. но начало координат тоже стоило упомянуть Улыбающийся

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

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #10 : Май 30, 2012, 22:23 »

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

Ладно, вот еще вопросик, kambala, Вы легко догадаетесь, поэтому просьба промолчать, пусть  другим будет интереснее. На аттаченной фотке хорошо видно что солнечные лучи "расходятся". Как же так, ведь солнце (вроде) светит параллельно? Или как?  Улыбающийся
Записан
Bepec
Гость
« Ответ #11 : Май 30, 2012, 22:33 »

Хм. Вроде бы искажение идёт от атмосферы, не? Да и угол падения лучей неодинаков. Да и поверхность не плоская Подмигивающий
Записан
V1KT0P
Гость
« Ответ #12 : Май 30, 2012, 22:48 »

Вот вам еще одно определение:
Цитировать
Аффинные преобразования

Под преобразованием понимается отображение множества на себя. Другими словами, преобразование — это правило, в соответствии с которым каждому элементу множества ставится в соответствие элемент этого же множества.

Преобразование плоскости (пространства) называется аффинным, если существуют такие две аффинные системы координат, что координаты любой точки в первой системе координат совпадают с координатами ее образа во второй системе координат.
А вот и статья с другим определением =): http://compgraphics.info/3D/3d_affine_transformations.php
Цитировать
Определение. Преобразование плоскости называется аффинным (от англ. affinity – родство), если

    оно взаимно однозначно;
    образом любой прямой является прямая.

Преобразование называется взаимно однозначным, если

    разные точки переходят в разные;
    в каждую точку переходит какая-то точка.

Свойства аффинного преобразования в трехмерном пространстве:

    отображает n-мерный объект в n-мерный: точку в точку, линию в линию, поверхность в поверхность;
    сохраняет параллельность линий и плоскостей;
    сохраняет пропорции параллельных объектов – длин отрезков на параллельных прямых и площадей на параллельных плоскостях.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #13 : Май 31, 2012, 08:14 »

Хм. Вроде бы искажение идёт от атмосферы, не? Да и угол падения лучей неодинаков. Да и поверхность не плоская Подмигивающий
Ага, "авось что-то и окажется верным". Однако же не оказалось Улыбающийся И каким образом "угол падения лучей неодинаков" если Солнце очень далеко от Земли?

Вот вам еще одно определение:
Это гораздо более толково/понятно. Но все-таки вещи хочется понимать, а не повторять ссылку (иной раз очень сомнительную).

Хотя впрочем не всем. Вот наш модератор мувит хорошие темы в "говорилку" и говорит что это скандалы и интриги - хотя ничего такого здесь не было  Улыбающийся
« Последнее редактирование: Май 31, 2012, 08:20 от Igors » Записан
Bepec
Гость
« Ответ #14 : Май 31, 2012, 08:24 »

Насколько я помню физику и прочая. Когда луч солнца попадает в атмосферу, находящиеся в атмосфере примеси преломляют луч.
Солнце конечно находится далеко, но. Но недостаточно далеко, чтобы лучи шли параллельно. 
И конечно же округлость земли тоже решает. Земная поверхность не параллельна солнцу. Соответственно и идёт эффект.
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.095 секунд. Запросов: 23.