Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Параллельный перенос
Параллельный перенос в плоском случае имеет вид:
x` = x + Dx
y` = y + Dy
[x’, y’] = [x, y] + [Dx, Dy]
P’ P T
или в векторной форме:
P` = P + T, |
где P` = [x` y`] - вектор-строка преобразованных координат,
где x, y - исходные координаты точки,
Tx, Ty - величина сдвига по осям,
x`, y` - преобразованные координаты.
P = [x y] - вектор-строка исходных координат,
P` = [x` y`] - вектор-строка преобразованных координат,
T = [Tx Ty] - вектор-строка сдвига.
Масштабирование
Преобразование масштабирования относительно начала координат имеет вид:
x` = x ·Sx
y` = y ·Sy или
Sx 0
[x`, y`] = [x, y] ·
0 Sy
P` P
S
или в матричной форме:
P` = P ·S, |
где Sx, Sy - коэффициенты масштабирования по осям, а
S - матрица масштабирования
Поворот
Преобразование поворота относительно начала координат имеет вид:
x`= x·cos(φ) – y·sin(φ)
y`= x·sin(φ) + y·cos(φ)
или
cos(φ) sin(φ)
[x`, y`] = [x, y] ·
–sin(φ) cos(φ)
P` P
R
Где R – матрица поворота
φ – положительный угол поворота
или в матричной форме:
P` = P ·R, |
Столбцы и строки матрицы поворота представляют собой взаимно ортогональные единичные векторы. В самом деле квадраты длин векторов-строк равны единице:
cosf·cosf+sinf·sinf = 1 и |
(-sinf) ·(-sinf)+cosf·cosf = 1, |
а скалярное произведение векторов-строк есть
cosf·(-sinf) + sinf·cosf = 0. |
Так как скалярное произведение векторов A · B = | A | ·| B | ·cosy, где | A | - длина вектора A, | B | - длина вектора B, а y - наименьший положительный угол между ними, то из равенства скалярного произведения двух векторов-строк длины 1 следует, что угол между ними равен 90°.
Аналогичное можно показать и для векторов-столбцов. Кроме того вектора-столбцы представляют собой такие единичные векторы, которые после выполнения преобразования, заданного этой матрицей, совпадут с осями. В самом деле, произведение первого столбца на матрицу есть
cosf | -sinf | · | cosf | sinf | = | , | ||||||||||||||||
-sinf | cosf |
т.е. это единичный вектор вдоль оси X. Аналогично, произведение второго столбца на матрицу даст вектор [ 0 1 ]. Это позволяет сформировать матрицу, если известны результаты преобразования.
Преобразование в однородную систему координат
Как видно двумерные преобразования имеют различный вид. Сдвиг реализуется сложением, а масштабирование и поворот - умножением. Это различие затрудняет формирование суммарного преобразования и устраняется использованием двумерных однородных координат точки, имеющих вид:
[ X Y W ]. |
Здесь W - произвольный множитель не равный 0.
Двумерные декартовые координаты точки получаются из однородных делением на множитель W:
x = X / W, y = Y / W, W 0 |
Однородные координаты можно представить как промасштабированные с коэффициентом W значения двумерных координат, расположенные в плоскости с Z = W.
В силу произвольности значения W в однородных координатах не существует единственного представления точки, заданной в декартовых координатах.
Преобразования параллельного переноса, масштабирования и поворота в однородных координатах относительно центра координат все имеют одинаковую форму произведения вектора исходных координат на матрицу преобразования.
Будем брать W=1.
Параллельный перенос:
1 0 0
[X`, Y`, 1]=[X, Y, 1]· 0 1 0
Dx Dy 1
Перемножив, получим: [X + Dx, Y + Dy, 1].
Масштабирование:
P` = P·S; где
Поворот:
Рё = Р·R; где
Дата публикования: 2014-11-03; Прочитано: 422 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!