LINUX.ORG.RU
решено ФорумTalks

поворот + перенос = поворот + перенос вдоль оси вращения ?

 


0

2

тут такая задача нашлась:

Дано утверждение, что каждый поворот с последующим переносом можно представить в виде поворота и переноса вдоль оси поворота.

Я нахожу это утверждение неверным. Я ошибаюсь?

★★☆☆☆
Ответ на: комментарий от unt1tled

это я об обыкновенном ортогональном преобразовании в R^3.

dikiy ★★☆☆☆
() автор топика

Хммм.. Насколько я могу себе это представить, вроде как это верно. Учти, что ось поворота может находиться «снаружи» поворачиваемого объекта.

Т. е. если направить оси x,y,z так, что ось z совпадает с осью поворота, то поворот в первом случае будет вокруг оси {x=0, y=0}, а во втором случае его надо делать вокруг оси {x=a, y=b}, где a и b выбираются так, чтобы поворачиваемый объект попал в точку с координатами {x', y', 0}, где {x',y',z'} - координаты объекта после переноса в первом случае. После этого сдвигаем его вдоль оси z на z'.

Kiborg ★★★
()

Я вспомнил почему-то теорему эйлера-даламбера из термеха. Возможно автор этой теоремы начился на букву Ш.

Zodd ★★★★★
()
Ответ на: комментарий от Kiborg

После этого сдвигаем его вдоль оси z на z'.

но требуемое направление переноса не обязательно будет совпадать с направлением оси z.

dikiy ★★☆☆☆
() автор топика
Ответ на: комментарий от Kiborg

А к этому моменту координаты x и y уже совпадают с нужными, поэтому гарантированно совпадает.

так ведь объект не точечный. И угол его поворота может не совпадать с заданным.

dikiy ★★☆☆☆
() автор топика
Последнее исправление: dikiy (всего исправлений: 1)
Ответ на: комментарий от Kiborg

все. кажись врубился.

получается, что преобразование Dx+c представляем в виде D(x+m)+a, где a - собственный вектор преобразования (ось вращения). Выходит, что m=D^{-1}(c-a).

dikiy ★★☆☆☆
() автор топика
Ответ на: комментарий от dikiy

Ну, я бы наверное так не сказал, все-таки собственный вектор - это немного другое.

Чтоб два раза не вставать, на всякий случай отвечу:

так ведь объект не точечный. И угол его поворота может не совпадать с заданным.

Угол поворота оставляем тем же самым \alpha. Весь фокус в том, как выбрать координаты a и b новой оси поворота (она будет параллельна старой). Выбираются они исходя из построения треугольника в плоскости (x,y,0), вершинами которого являются A=(0,0), B=(x',y') и C=(a,b), причем AC = BC и угол ACB = \alpha (с учетом направления поворота!). Таких точек C на плоскости ровно одна, она находится на срединном перпендикуляре отрезку AB. Тогда при повороте вокруг этой точки на угол \alpha объект из (0,0) переезжает в (x',y') и поворачивается на угол \alpha.

Kiborg ★★★
()

Поворот + перенос = поворот + перенос перпендикулярно оси + перенос вдоль оси. Первые два преобразования в правой части, безусловно, образуют поворот.

Как строго-то доказать? Например, перейти в систему координат, где ось Z совпадает с осью вращения, и формулы написать...

lodin ★★★★
()
Ответ на: комментарий от lodin

Как строго-то доказать? Например, перейти в систему координат, где ось Z совпадает с осью вращения, и формулы написать...

вот так поворот + перенос = поворот + перенос вдоль оси вращения ? (комментарий)

dikiy ★★☆☆☆
() автор топика
Ответ на: комментарий от Kiborg

Ну, я бы наверное так не сказал, все-таки собственный вектор - это немного другое.

в случае ортогонального преобразования вращения это одно и то же.

Угол поворота оставляем тем же самым \alpha. Весь фокус в том, как выбрать координаты a и b новой оси поворота (она будет параллельна старой).

........

я не осилил, но думаю, что ты высказал то же самое, что и я в предыдущем посте. (-m)-<m,a>*a это и есть координаты новой оси поворота (a - единичный вектор оси). В принципе можно и просто (-m) в качество оси задать. Сути не меняет, так как ось все равно направлена вдоль a.

dikiy ★★☆☆☆
() автор топика
Последнее исправление: dikiy (всего исправлений: 1)

Да, ошибаешься. Это правда.

Miguel ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.