|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Нахождение матрицы не-афинного преобразования по заданным координатам.
Регистрация: 06.04.2009
Сообщений: 702
|
||
Просмотров: 7026
|
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 575
|
Не буду утверждать, может я и ошибаюсь, но по-моему в таком контексте задача не решается.
__________________
cadtools |
|||
![]() |
|
||||
Регистрация: 06.04.2009
Сообщений: 702
|
Цитата:
Цитата:
Цитата:
З.Ы. Для справки, для афинного преобразования, матрица [b]=[A^(-1)]*[D], для массива из трех произвольных координат (естественно есть частные случаи, для котрых нет решения)
__________________
КазнитьØнельзяØпомиловать:eek: |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
>Нахождение матрицы не-афинного преобразования по заданным координатам.
>>Необходимо найти матрицу В. Матрица B какраз является матрицей аффинного преобразования, а вы совершив 2 действия с данными пытаетесь восстановить одно. Не обратимым ваше преобразование делает последнее деление (отброс одной координаты = превращение точек в прямые). Если вам известна матрица C, то B можно найти по формуле из [5]. Если известна только D - ситуация равносильна попытке восстановить 3D деталь по одной 2D проекции - мало данных. edit: Всетаки B не аффинная матрица Последний раз редактировалось zamtmn, 07.02.2011 в 15:17. Причина: вспомнил определение аффинных преобразований |
|||
![]() |
|
||||
Регистрация: 06.04.2009
Сообщений: 702
|
Цитата:
Известно [А] и [D]: найти [В] зная взаимосвязь между [A] -> [b] -> [C] -> [D] Не нужно кричать на весь мир что небо голубое - то что матрица [В] обладает афинными свойствами это очевидно. А в целом нет. Поэтому тема и была так названа. Про 3D деталь вы заблуждаетесь. Координаты [А] и [D] плоские. [А] для нахождения [В] необходимо не более 4 точек. Вся фишка заключается в том что для нахождения всех элементов [В] необходимо решить систему нелинейных уравнений. По этому пути я сейчас и иду.
__________________
КазнитьØнельзяØпомиловать:eek: Последний раз редактировалось Сергей Дубина, 07.02.2011 в 15:27. |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
>>Известно А и D: найти В зная взаимосвязь между A -> B -> C -> D
восстановите С, если знаете взаимосвязь. >>Про 3D деталь вы заблуждаетесь. Координаты А и D плоские. А для нахождения В необходимо не более 4 точек. нет, не заблуждаюсь, плоские\неплоские без разницы - одна координата была потеряна после деления edit: Хотя может и заблуждаюсь и дополнительной информации что исходный объект плоский хватит для решения Последний раз редактировалось zamtmn, 07.02.2011 в 15:37. |
|||
![]() |
|
||||
Регистрация: 06.04.2009
Сообщений: 702
|
Цитата:
Вот это мне и надо. Есть предложения или дальше будем флуд гонять?
__________________
КазнитьØнельзяØпомиловать:eek: |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
>>Вот это мне и надо
Какаято B <> исходная B. >>Есть предложения или дальше будем флуд гонять? 1) домножте D на случайные числа тем самым "восстановив" C 2) насколько понял это у вас перспективное проецирование? погуглите "восстановление положения камеры по фото" |
|||
![]() |
|
||||
Регистрация: 06.04.2009
Сообщений: 702
|
Эти числа не случайны - они часть общего целого. Домножив на случайные числа мы получим "какую-то другую" [b]
уже две недели пытаюсь так сформулировать вопрос чтобы мне "не продали что нибудь ненужное"
__________________
КазнитьØнельзяØпомиловать:eek: |
|||
![]() |
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,169
|
чуть позже попробую в том же Mathcad'е реализовать некое подобие bruteforce - т.е. перебор значений всех элементов [b] (в некотором диапазоне) с достаточно мелким шагом и проверку полученной матрицы [B'] путем подстановки в выражение, из которого получается [D]
Зная примерный диапазон значений элементов матрицы [b] (надо думать, от 0 до 10) и учитывая ее небольшую размерность 3х3, можно надеяться на умеренное время поиска решения даже при переборе с шагом 0,001. Кстати, есть ли у матрицы [b] какие-то особенности? Похоже, что B(1;1) и B(2;2) всегда равны 0, B(2;1) и B(1;2) всегда 1, B(3;1) и B(3;2) - всегда 4, и только последний столбец "несет смысловую нагрузку". Тогда две трети перебора отпадают, что уже хорошо Последний раз редактировалось kp+, 07.02.2011 в 20:37. |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
>>уже две недели пытаюсь так сформулировать вопрос чтобы мне "не продали что нибудь ненужное"
Незнаю, попадалось это вам уже или нет: http://super.tka4.org/materials/stud...lad%202/h1.pdf В математику без пузыря вникать не хочется, но судя по заключению дельная статья. http://sourceforge.net/projects/artoolkit/ опенсурсная программа тоже вроде про то что надо, можно подглядеть реализацию |
|||
![]() |
|
||||
Регистрация: 06.04.2009
Сообщений: 702
|
Цитата:
Остальные элементы носят совмещенные функции: B(1;1),B(2;2),B(2;1) и B(1;2) отвечают за поворот и сдвиг, диагональные (кроме В(3,3)) отвечают за масштаб (в сочетании с B(1;1),B(2;2),B(2;1) и B(1;2)), В(3,1),В(3,2) за сдвиг, В(1,3) и В(2,3) за "непарралельнось" у меня маткада нет если не трудго загоните нелинейную систему уравнений (см. вложение) pdf: Спасибо, слишком круто, нужно проще. source: В чужих исходниках ковыряться дело непростое.
__________________
КазнитьØнельзяØпомиловать:eek: |
|||
![]() |
|
||||
Регистрация: 06.04.2009
Сообщений: 702
|
Математику, хотя бы в маткад можно перегнать? Вчера маткад нашел, а математику незнаю смогу-ли.
По тексту 123.NB понятно суть довольно смутно. В любом случае спасибо.
__________________
КазнитьØнельзяØпомиловать:eek: Последний раз редактировалось Сергей Дубина, 09.02.2011 в 16:48. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как на лиспе начертить много линий по заданным координатам из одной точки | topograf83 | LISP | 4 | 26.09.2009 22:53 |