ALL
.pdfПРАВИЛА ВЫПОЛНЕНИЯ ПРЕОБРАЗОВАНИЙ
•Для представления данных и выполнения преобразований с помощью умножения матриц используются различные соглашения. Наибольшее внимание нужно уделять формулировке задач и интерпретации результатов.
•Например, для поворота необходимо определить:
–В правосторонней или левосторонней системе координат определяются поворачиваемые координатные векторы?
–Вращается объект или система координат?
–Как определяются положительный и отрицательный повороты?
–Координаты записываются в виде строки или столбца матрицы?
–Вокруг какой линии или оси осуществляется поворот?
•Мы использовали правостороннюю систему координат, объект вращается в неподвижной координатной системе, положительный поворот определяется правилом правой руки, т. е. поворот по часовой стрелке осуществляется вокруг оси при наблюдении от начала вдоль положительной оси, и координатные векторы представляются в виде строки матрицы.
ПРАВИЛА ВЫПОЛНЕНИЯ ПРЕОБРАЗОВАНИЙ
• Выражение |
T cos |
sin |
задает преобразование для положительного |
sin |
cos |
||
|
|
|
|
поворота вокруг начала координат или оси z.
• Так как вектор задается строкой матрицы, то матрица преобразования должна быть после данных или матрицы координатных векторов. Это преобразование задается путем умножения справа. В случае однородных координат для положительного поворота объекта на угол θ вокруг начала координат (оси z) использование умножения справа приводит к следующему результату:
• |
[X*] = [Х][R], |
x* |
|
1 x |
cos |
sin |
0 |
(4) |
||
y* |
y 1 sin |
cos |
0 |
|||||||
|
|
|
||||||||
|
|
|
|
|
|
0 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
•Если мы подставим координатные векторы, заданные в однородных координатах в виде столбца матрицы, то поворот можно выполнить следующим образом:
• |
[X*] = [R]-1 [Х] |
x* |
cos |
sin |
0 x |
(5) |
• |
|
y* |
sin |
cos |
0 y |
|
0 0 1
1 1
•Это выражение - преобразование с умножением слева, матрица преобразования расположена перед столбцом координатного вектора или данных.
•Заметим, что 3 х 3-матрица в выражении (5) есть транспозиция 3 х 3- матрицы из выражения (4). Это свидетельствует о независимости строк и столбцов матрицы.
ПРАВИЛА ВЫПОЛНЕНИЯ ПРЕОБРАЗОВАНИЙ
•Чтобы повернуть систему координат и оставить координатные векторы неизмененными, необходимо в выражении (4) заменить θ на -θ.
•sin θ = - sin(-θ),
•cos θ = cos(-θ).
•Теперь выражение (4) будет иметь вид
x* |
|
1 x |
|
cos |
sin |
0 |
|
|
y* |
y 1 sin |
|
cos |
0 |
||||
|
|
|
|
0 |
|
0 |
1 |
|
|
|
|
|
|
|
|
|
|
•3 х 3-матрица опять имеет обратную и также транспонируется в матрицу из (4).
•Если вращается система координат и используется левосторонняя координатная система, то замену θ на -θ надо производить дважды, а уравнение (4) снова оказывается справедливым при допущении, что применяется последующее умножение на строку матрицы данных.
•
ПРАВИЛА ВЫПОЛНЕНИЯ ПРЕОБРАЗОВАНИЙ
•Как показано на рис. 16, вращение против часовой стрелки векторов, задающих объект, идентично повороту в том же направлении координатных осей при неподвижном объекте.
•Нет необходимости в изменении содержимого матрицы преобразования 3x3, если нет других причин для ее редактирования. Эти несколько примеров показывают, насколько аккуратно необходимо выполнять матричные преобразования.
Рис . 16 Эквивалентность преобразования координатных векторов и систем координат
Пространственные преобразования и проекции
Матрица преобразования трехмерных объектов и назначение ее элементов.
•Вводим однородные координаты. Таким образом, точка в трехмерном пространстве [х у z] представляется четырехмерным вектором
• [х‘ у‘ z‘ h] = [x у z 1][T],
•где [T] - матрица некоего преобразования.
•Как и ранее, преобразование из однородных координат в обычные задается формулой
x* |
y* |
z* |
h |
|
x |
/ |
|
y |
/ |
|
z |
/ |
|
|
|
|
|
|
|
1 |
|||||||
|
|
|
|
|
|
|
|
||||||
|
|
|
|
h |
|
h |
|
h |
|
||||
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
•Т.е. делением на h.
•Матрица преобразования для объемных объектов
|
|
|
|
a |
b |
c |
o |
|
y1 |
|
|
|
|
|
|
x1 |
z1 1 |
d |
e f p |
||||
|
|
|
|
|
|
|
|
x2 |
y2 |
z2 |
1 |
* g |
h k r |
||
................... |
|
|
|
|
|
||
|
|
|
|
||||
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
................... |
|
l |
m |
n |
s |
||
|
|
|
|
|
|
|
|
•Матрицу преобразования 4 х 4 из можно разделить на четыре отдельные части:
|
|
|
|
|
|
|
3 3 |
|
3 1 |
||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|||
|
|
||||
|
|
||||
|
1 3 |
|
1 1 |
Матрица преобразования трехмерных объектов и назначение ее элементов.
•Подматрицы преобразования
a |
b |
c |
|
o |
d |
e |
f |
|
p |
g |
h |
k |
|
r |
|
|
|
|
|
|
|
|||
|
m |
n |
|
|
l |
s |
•3 x 3
•Коэффициенты a, е, k – изменение масштаба по осям и отображение относительно плоскостей или начала координат.
•Остальные коэффициенты – отвечают за поворот объектов вокруг осей, отдельно – за сдвиг.
•1 x 3
•Коэффициенты l, m, n – параллельный перенос объектов вдоль осей x, y, z, соответственно.
•
•3 x 1
•отвечает за преобразование тела в перспективе.
•1 x 1
•Коэффициент s – отвечает за изменение масштаба всей фигуры и отображение фигуры относительно начала координат.
ТРЕХМЕРНОЕ МАСШТАБИРОВАНИЕ
•Диагональные элементы 4 х 4-матрицы обобщенного преобразования задают локальное и общее масштабирование. Для иллюстрации этого рассмотрим преобразование
|
a |
0 |
0 |
0 |
|
zj 1 x* |
|
|
1 |
X T x |
y z 1 0 e |
0 |
0 |
ax ey |
y* |
z* |
|||
|
0 |
0 |
j |
0 |
|
|
|
|
|
|
|
0 |
0 |
|
|
|
|
|
|
|
0 |
1 |
|
|
|
|
|
•которое показывает действие локального масштабирования.
ТРЕХМЕРНОЕ МАСШТАБИРОВАНИЕ |
|
|
|
|
|
|
|
|
|
|
|
A |
||||||||||||||||||
|
|
|
0 |
0 |
|
1 |
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
B |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
0 |
|
1 |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
• Локальное масштабирование – пример |
|
|
|
|
|
1 |
|
|
|
|
||||||||||||||||||||
|
|
2 |
3 |
|
1 |
|
1 |
|
C |
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
• Дан прямоугольный параллелепипед (ПП) (рис. 1 а) |
|
X |
0 |
3 |
|
1 |
|
1 |
|
|
|
|
||||||||||||||||||
|
|
|
|
D |
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
|
0 |
|
|
|
|
E |
||
• со следующими однородными координатами вершин: |
|
|
|
|
|
1 |
|
|
|
|
||||||||||||||||||||
|
|
2 |
0 |
|
0 |
|
1 |
|
|
|||||||||||||||||||||
|
|
|
y |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
F |
|
|
||||||
|
|
|
H |
|
|
|
|
G |
|
|
|
» Нужно получить из него единичный куб |
|
|
2 |
3 |
|
0 |
|
1 |
|
G |
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
D |
|
|
|
|
|
|
|
|
|
|
|
|
0 3 |
|
0 |
|
1 |
|
H |
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
» с помощью локального масштабирования |
|
, |
x |
|
|
|
|
h |
|
|
|
|
|||
|
|
|
|
|
|
C |
|
|
|
|
|
|
|
y |
|
z |
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 » введем масштабные множители 1/2, 1/3, 1 вдоль осей х, у, z |
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
соответственно. Преобразование локального |
|
|
|
1 |
|
|
|
|
|
|
|
|||
|
|
|
|
E |
|
|
|
|
|
|
F |
|
|
|
масштабирования задается матрицей |
|
|
|
|
|
|
0 |
|
0 |
|
0 |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
2 |
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
1 |
|
|
|
|
|||||
|
A |
|
|
|
B |
|
|
|
|
|
|
|
|
|
T 0 |
|
0 |
|
0 |
|||||||||||
z |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
3 |
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
рис. 1 а |
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
|
1 |
|
0 |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
|
0 |
1 |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
• Результирующий куб имеет следующие однородные координаты вершин: |
|
|
|
|
|
•Заметим, что однородный координатный множитель h равен единице для каждой из преобразованных вершин. Результат масштабирования показан на
|
рис. 1 b. |
|
|
|
|
|
|
0 |
0 |
1 |
|
|
|
|
|
|
|
|
0 |
0 |
1 |
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
1 |
||||||
• |
|
y |
H |
|
|
|
G |
|
|
|
2 |
0 |
1 |
1 |
|
|
|
|
|
|
1 |
0 |
1 |
1 |
||||
|
|
|
|
|
|
|
2 |
3 |
1 |
1 1/ 2 |
0 0 |
0 |
|
|
1 |
1 |
1 |
1 |
||||||||||
|
D |
|
|
|
|
C |
|
|
|
|
X * X T |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
0 |
|
|
|
|
||||||||||
|
|
|
|
|
|
1 |
|
0 |
3 |
1 |
1 |
1/ 3 0 |
|
|
0 1 |
1 |
1 |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
1 |
|
0 |
0 1 |
0 |
|
0 |
0 |
0 |
1 |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
0 |
0 |
1 |
|
0 |
0 0 |
1 |
|
1 |
0 |
0 |
1 |
|||
|
|
E |
|
F |
x |
|
2 |
3 |
0 |
1 |
|
|
|
|
|
|
1 |
1 |
0 |
1 |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
A 1 B |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
z |
|
|
|
|
|
0 |
3 |
0 |
1 |
|
|
|
|
|
|
0 |
1 |
0 |
1 |
ТРЕХМЕРНОЕ МАСШТАБИРОВАНИЕ
•Общее масштабирование
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
0 |
0 |
0 |
|
• |
Для общего масштабирования единичного куба на множитель T 0 |
1 |
0 |
0 |
||||||||||||||||
• |
два (удвоение размера), необходимо преобразование |
|
0 |
0 |
1 |
0 |
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
1 2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
• Полученный параллелепипед имеет следующие однородные координаты |
|
|
||||||||||||||||||
|
вершин: |
|
0 |
0 |
1 |
1 |
|
|
|
|
0 |
0 |
1 |
1/ 2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
1 |
0 |
1 |
1 |
|
|
|
1 |
0 |
1 |
1/ 2 |
|
|
|
|
|
|||
|
|
1 |
|
|
1 |
|
1 |
|
|
1/ 2 |
|
|
|
|
|
|||||
|
X / X * T |
1 |
1 |
1 0 0 |
0 |
|
1 |
1 |
|
|
|
|
|
|||||||
|
|
0 |
1 |
1 |
|
0 1 0 |
0 |
|
0 1 1 1/ 2 |
|
|
|
|
|
|
|||||
|
|
1 |
|
|
|
|
|
|
|
|||||||||||
|
|
0 |
0 |
0 |
1 |
0 0 1 |
0 |
|
0 |
0 |
0 |
1/ 2 |
|
|
|
|
|
|||
|
|
|
1 |
0 |
0 |
|
|
|
|
|
1 0 0 1/ 2 |
|
|
|
|
|
|
|||
|
|
|
1 |
0 0 0 |
1/ 2 |
|
|
|
|
|
|
|
||||||||
|
|
1 |
1 |
0 |
1 |
|
|
|
1 |
1 |
0 |
1/ 2 |
|
|
|
|
|
|||
|
|
|
|
1 |
0 |
|
|
|
|
|
|
1 |
0 |
|
|
|
|
|
|
|
|
|
0 |
1 |
|
|
|
0 |
1/ 2 |
|
|
|
|
|
|||||||
• |
однородный координатный множитель h для каждой из преобразованных |
|
|
вершин равен 0,5. т.е. чтобы получить обычные или физические координаты,
каждый вектор необходимо разделить на h.
•Преобразованные физические координаты получаются проецированием через центр 4-мерной координатной системы обратно в физический объем h = 1.
•Если s < 1, происходит однородное расширение.
•Если s > 1, происходит однородное сжатие координатного
|
|
|
|
|
|
|
|
0 |
0 |
2 |
1 |
|
2 |
0 |
2 |
1 |
|
X * |
2 |
2 |
2 |
1 |
|
|
0 |
2 |
2 |
|
|
|
1 |
||||
|
0 |
0 |
0 |
1 |
|
|
2 |
0 |
0 |
1 |
|
|
2 |
2 |
0 |
1 |
|
|
|
|
2 |
0 |
|
|
0 |
1 |
вектора.