Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу 1, 2, 3  След.
 Смещение системы координат
Есть стандартная декартова система координат. В ней даны координаты четырех точек. Затем оси, относительно этих точек сместили (повернули или еще что-нить). И даны координаты этих же четырех точек, только уже в новой системе. Как на основании этих данных рассчитать закон изменения координат. Чтобы потом можно было его "обратить" и по конечным (в смещенной СК) координатам вычислить начальные?
Подскажите, пожалуйста, хоть в какую сторону смотреть? Буду очень благодарна!

 
Аватара пользователя
любое движение является аффинным преобразованием:
$$x' = Ax + b$$
причем в случае движения матрица $$A$$ обратима, т. е. обратное движение можно записать так:
$$x = A^{-1}x' - A^{-1}b$$

 
Аватара пользователя
Для однозначного и обратимого решения необходимо и достаточно, чтобы обе четвёрки были вершинами невырожденных тетраэдров. И ещё, разумеется, необходимо указать, какая точка в какую переходит.
Матричное уравнение, которое написал Xaositect, можно перевести в систему из 12 уравнений с 12 неизвестными (у вас трёхмерная система координат, надеюсь).

 
gris, у меня обычная декартова система координат, две оси Х и У.
Xaositect, а Вы не могли бы дать какие-нибудь ссылки на литературу по этому поводу, чтобы я могла поподробнее об этом почитать?

Я так понимаю, что x штрих - это смещенная координата, а для у будет аналогичное уравнение?

 
Если задача плоская, то задача некорректна -- система переопределена: у Вас восемь требований на координаты, в то время как параметров преобразования не более шести (а если оно ортогональное, то лишь три).

В пространстве задача корректна для преобразований общего вида (12 параметров), но некорректна для ортогональных преобразований (6 параметров).

 
Аватара пользователя
А тогда достаточно трёх точек, лишь бы они не лежали на одной прямой. $x$ у Xaositect это вектор, состоящий из двух координат. Можно и так написать:
$\left(\begin{array}{ccc}x'  \\ y' \end{array}\right)=\left(\begin{array}{ccc}a_{11} & a_{12} \\ a_{21} & a_{22} \end{array}\right)\left(\begin{array}{ccc}x  \\ y \end{array}\right)+\left(\begin{array}{ccc}b_1 \\ b_2 \end{array}\right)$

 
ewert, хорошо...А как тогда решение этой задачи будет выглядеть в пространстве для преобразований общего вида?


gris, но ведь эта система не решается, там же 2 уравнения и 6 неизвестных....

 
Аватара пользователя
Так у Вас же три точки. В итоге 6 уравнений :)

Добавлено спустя 3 минуты 46 секунд:

В пространстве
$\left(\begin{array}{ccc}x'  \\ y' \\ z'\end{array}\right)=\left(\begin{array}{ccc}a_{11} & a_{12} & a_{13}\\ a_{21} & a_{22}& a_{23}\\a_{31} & a_{32}& a_{33} \end{array}\right)\left(\begin{array}{ccc}x  \\ y \\z\end{array}\right)+\left(\begin{array}{ccc}b_1 \\ b_2 \\b_3\end{array}\right)$
Для четырёх точек получим 12 уравнений.

 
gris,
у меня 4 точки...в плоской декартовой системе координат. Т.е. координаты (x1, y1), (x2, y2), (x3, y3), (x4, y4) - это изначальные, ну и четыре смещенные (x_1, y_1), (x_2, y_2), (x_3, y_3), (x_4, y_4) ... что-то я видимо туплю...

 
Аватара пользователя
Ну и хорошо. Возьмите три из них, которые не лежат на одной прямой. Вообще тут возможны нюансы.

Добавлено спустя 2 минуты 10 секунд:

Если априорно известно, что существует некоторое движение, которое вот для такого набора точек переводит их вот в этот набор, то мы можем определить матрицу этого движения по трем точкам, не лежащим на одной прямой

 
Найдите решение по любым трём точкам, не лежащим на одной прямой (и на входе, и на выходе). Потом проверьте, правильный ли результат получается для четвёртой точки. Если нет -- задача поставлена некорректно.

 
Аватара пользователя
Если же Вы хотите подобрать преобразование, которое четыре данные точки переводит в четыре других, то у Вас может ничего не получиться. Такого преобразования может не существовать

 
Короче, в постановке задачи явно чего-то напутано. Но если добивать её в том виде, как есть, то тогда так.

Предположим, ни одной "хорошей" тройки найти не удалось. Тогда существует тройка, которая или на входе, или на выходе лежит на одной прямой; предположим для определённости, что на входе. Тогда на выходе она тоже обязана лежать на одной прямой -- иначе решения нет. В этих условиях чётвёртая точка должна лежать на той же прямой и на входе, и на выходе (иначе или решения нет, или существует "хорошая" тройка, но этот случай мы исключили).

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

 
Xaositect писал(а):
любое движение является аффинным преобразованием:
$$x' = Ax + b$$

Splendid в сообщении #184014 писал(а):
Я так понимаю, что x штрих - это смещенная координата, а для у будет аналогичное уравнение?


$x$ у Xaositectа был вектром, включавшим $x_1,x_2,x_3$, что в быту (да и в других отраслях) называют как $x,y,z$.
Т.е. процитированное есть уже три уравнения, а не одно. То есть одно, матричное. То есть три, по-бытовому.. :)

 
gris, я дико извиняюсь, ну не доходит до меня...
"Если априорно известно, что существует некоторое движение, которое вот для такого набора точек переводит их вот в этот набор, то мы можем определить матрицу этого движения по трем точкам, не лежащим на одной прямой" - как? Как определить эту матрицу?

Добавлено спустя 6 минут 58 секунд:

и еще...почему в приведенных уравнениях не учитывается угол поворота СК?

 [ Сообщений: 35 ]  На страницу 1, 2, 3  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group