как найти матрицу преобразования координат?

Сообщение №6760 от Юрий 29 января 2003 г. 12:45
Тема: как найти матрицу преобразования координат?

Есть два набора координат. Вторые - это координаты в преобразованной системе координат. То есть выполнент поворот и сдвиг системы координат. Причём координат много, точно больше десятка.

Как найти матрицу преобразований? Можно ли её найти путём решения системы линейных уравнения?


Отклики на это сообщение:

> Есть два набора координат. Вторые - это координаты в преобразованной системе координат. То есть выполнент поворот и сдвиг системы координат. Причём координат много, точно больше десятка.

> Как найти матрицу преобразований? Можно ли её найти путём решения системы линейных уравнения?

Для ортонормированных базисов координаты осей одного базиса в другом базисе это столбцы (или строки) матрицы преобразования.


> Для ортонормированных базисов координаты осей одного базиса в другом базисе это столбцы (или строки) матрицы преобразования.

Я имел в виду только поворот. Сдвиг элементарно.


> Есть два набора координат. Вторые - это координаты в преобразованной системе координат. То есть выполнент поворот и сдвиг системы координат. Причём координат много, точно больше десятка.

> Как найти матрицу преобразований? Можно ли её найти путём решения системы линейных уравнения?

Рассмотрим не 10, а 2 точки с р.векторами до преобразования системы координат:
r1 и r2.После преобразования получим 2 других р.вектора: R1 и R2, причем

R1 = Ar1 + d
R2 = Ar2 + d

Здесь A - матрица поворота; d - постоянный вектор сдвига.
Вычтем уравнения одно из другого:

(R1 - R2) = A(r1 - r2)

Матрица поворота A содержит 3 независимые неизвестные величины. Уравнение - векторное, так что на самом деле это 3 уравнения. Уравнения, к сожалению, нелинейные, ибо "свертка" 9-ти элементов матрицы поворота к 3-м независимым - нелинейная операция.


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

Ведь если известно, как меняется система координат изначально, то матрицу преобразований определить легко, а вот как решить обратную задачу?


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

> Ведь если известно, как меняется система координат изначально, то матрицу преобразований определить легко, а вот как решить обратную задачу?

А что, к примеру, просто сдвиг (=поворот на нулевой угол+сдвиг) описывается матричным умножением??
Так нет ;(
За что тогда боремся?


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

> Ведь если известно, как меняется система координат изначально, то матрицу преобразований определить легко, а вот как решить обратную задачу?

Матрица преобразования это только поворот, сдвиг это вектор. Тебе надо найти матрицу и вектор : V_i=А*v_i+s, А ортонормированная, имея набор {V_i} и {v_i}.

У тебя трёхмерное пространство или больше (N)?

Я б представил матрицу А как произведение N поворотов вокруг каждой координатной оси, и попробовал найти N углов и вектор s решая систему уравнений (в N-мерной матрице поворота всего N степеней свободы, то есть, фактически, только N независимых элементов).


> > Есть два набора координат. Вторые - это координаты в преобразованной системе координат. То есть выполнент поворот и сдвиг системы координат. Причём координат много, точно больше десятка.

> > Как найти матрицу преобразований? Можно ли её найти путём решения системы линейных уравнения?

> Рассмотрим не 10, а 2 точки с р.векторами до преобразования системы координат:
> r1 и r2.После преобразования получим 2 других р.вектора: R1 и R2, причем

> R1 = Ar1 + d
> R2 = Ar2 + d

> Здесь A - матрица поворота; d - постоянный вектор сдвига.
> Вычтем уравнения одно из другого:

> (R1 - R2) = A(r1 - r2)

> Матрица поворота A содержит 3 независимые неизвестные величины. Уравнение - векторное, так что на самом деле это 3 уравнения. Уравнения, к сожалению, нелинейные, ибо "свертка" 9-ти элементов матрицы поворота к 3-м независимым - нелинейная операция.

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


> > > Есть два набора координат. Вторые - это координаты в преобразованной системе координат. То есть выполнент поворот и сдвиг системы координат. Причём координат много, точно больше десятка.

> > > Как найти матрицу преобразований? Можно ли её найти путём решения системы линейных уравнения?

> > Рассмотрим не 10, а 2 точки с р.векторами до преобразования системы координат:
> > r1 и r2.После преобразования получим 2 других р.вектора: R1 и R2, причем

> > R1 = Ar1 + d
> > R2 = Ar2 + d

> > Здесь A - матрица поворота; d - постоянный вектор сдвига.
> > Вычтем уравнения одно из другого:

> > (R1 - R2) = A(r1 - r2)

> > Матрица поворота A содержит 3 независимые неизвестные величины. Уравнение - векторное, так что на самом деле это 3 уравнения. Уравнения, к сожалению, нелинейные, ибо "свертка" 9-ти элементов матрицы поворота к 3-м независимым - нелинейная операция.

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

Пример: есть вектор на плоскости, который преобразуется поворотом в другой вектор этой же плоскости. Уточните неоднозначность.

ЗЫ Отмечу, что для наглядности я решал несколько измененную задачу: вместо преобразования (поворота и сдвига) системы координат рассмотрел поворот и сдвиг векторов. На самом деле это однотипные задачи.


> > > > Есть два набора координат. Вторые - это координаты в преобразованной системе координат. То есть выполнент поворот и сдвиг системы координат. Причём координат много, точно больше десятка.

> > > > Как найти матрицу преобразований? Можно ли её найти путём решения системы линейных уравнения?

> > > Рассмотрим не 10, а 2 точки с р.векторами до преобразования системы координат:
> > > r1 и r2.После преобразования получим 2 других р.вектора: R1 и R2, причем

> > > R1 = Ar1 + d
> > > R2 = Ar2 + d

> > > Здесь A - матрица поворота; d - постоянный вектор сдвига.
> > > Вычтем уравнения одно из другого:

> > > (R1 - R2) = A(r1 - r2)

> > > Матрица поворота A содержит 3 независимые неизвестные величины. Уравнение - векторное, так что на самом деле это 3 уравнения. Уравнения, к сожалению, нелинейные, ибо "свертка" 9-ти элементов матрицы поворота к 3-м независимым - нелинейная операция.

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

> Пример: есть вектор на плоскости, который преобразуется поворотом в другой вектор этой же плоскости. Уточните неоднозначность.

В 2D неоднозначности нет. Но в ЗD существует множество возможных поворотов которые переводят один вектор в другой. Например, можно поворачивать вокруг биссектрисы а можно вокруг общего перпендикулиара.

> ЗЫ Отмечу, что для наглядности я решал несколько измененную задачу: вместо преобразования (поворота и сдвига) системы координат рассмотрел поворот и сдвиг векторов. На самом деле это однотипные задачи.


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

> > Пример: есть вектор на плоскости, который преобразуется поворотом в другой вектор этой же плоскости. Уточните неоднозначность.

> В 2D неоднозначности нет. Но в ЗD существует множество возможных поворотов которые переводят один вектор в другой. Например, можно поворачивать вокруг биссектрисы а можно вокруг общего перпендикулиара.

Вы считаете, что для этих возможных поворотов, которые переводят один вектор в другой, можно в принципе найти одно единственное решение? При чем здесь метод, если задача неоднозначна по своей природе?


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

> > > Пример: есть вектор на плоскости, который преобразуется поворотом в другой вектор этой же плоскости. Уточните неоднозначность.

> > В 2D неоднозначности нет. Но в ЗD существует множество возможных поворотов которые переводят один вектор в другой. Например, можно поворачивать вокруг биссектрисы а можно вокруг общего перпендикулиара.

> Вы считаете, что для этих возможных поворотов, которые переводят один вектор в другой, можно в принципе найти одно единственное решение?

Если векторов достаточно много то да.

> При чем здесь метод, если задача неоднозначна по своей природе?



Физика в анимациях - Купить диск - Тесты по физике - Графики on-line

Реклама:
Rambler's Top100