Учебное пособие / Метематические основы машинной графики / exilim / 1.3.asp-ThemeID=1
.htmДвумерные преобразования - 1.3. Преобразование пересекающихся прямых A.l:link { text-decoration: none; font-size: 8pt; color: 666666; } A.l:hover { text-decoration: none; font-size: 8pt; color: 666666; } A.l:active { text-decoration: none; font-size: 8pt; color: 666666; } A.l:visited { text-decoration: none; font-size: 8pt; color: 666666; } A.std:link { text-decoration: none; font-size: 11pt; font-weight: bold; color: 8E5717; } A.std:hover { text-decoration: none; font-size: 11pt; font-weight: bold; color: 7F0000; } A.std:active { text-decoration: none; font-size: 11pt; font-weight: bold; color: 8E5717; } A.std:visited { text-decoration: none; font-size: 11pt; font-weight: bold; color: 8E5717; } A.li:link { text-decoration: none; font-size: 10pt; font-weight: bold; color: 666666; } A.li:hover { text-decoration: none; font-size: 10pt; font-weight: bold; color: 666666; } A.li:active { text-decoration: none; font-size: 10pt; font-weight: bold; color: 666666; } A.li:visited { text-decoration: none; font-size: 10pt; font-weight: bold; color: 666666; } A.lil:link { text-decoration: none; font-size: 11pt; color: 666666; } A.lil:hover { text-decoration: none; font-size: 11pt; color: 7F0000; } A.lil:active { text-decoration: none; font-size: 11pt; color: 666666; } A.lil:visited { text-decoration: none; font-size: 11pt; color: 666666; } Алгоритмические
основы Математические
основы Flash 5 CorelDraw 10 3D Studio Max3 [программа] [тесты] [лабораторные] [вопросы] [литература]
1. Двумерные преобразования
1.3. Преобразование пересекающихся прямых Результатом преобразования с помощью (2х2)-матрицы пары пересекающихся прямых линий также будет пара пересекающихся линий. Проиллюстрируем это на примере двух прямых, заданных уравнениями: y = m1x + b1
y = m2x + b2 В матричном представлении эти уравнения будут иметь вид:
[X][T] = [x y] -m1 -m2
1 1 = [b1 b2] или
[X][M] = [B] Если существует решение этой системы уравнений, то линии пересекаются, в противном случае они параллельны. Решение можно найти путем инверсии матрицы. В частности, [Xi] = [xi yi] = [B][M] -1 Матрица, обратная [М], имеет следующий вид:
1
m2 - m1
-1
m2 - m1 m2
m2 - m1
-m1
m2 - m1 так как [M][M] -1 = [E], где [E] - единичная матрица. Поэтому координаты точки пересечения двух линий можно найти следующим образом: [Xi] = [xi yi] = [b1 b2] 1
m2 - m1
-1
m2 - m1 m2
m2 - m1
-m1
m2 - m1 [Xi] = [xi yi] = b1 - b2
m2 - m1 b1m2 - b2m1
m2 - m1 Если обе линии преобразовать с помощью (2х2)-матрицы общего преобразования вида:
[T] = a b
c d то их уравнения будут иметь вид
y* = m1*x* + b1*
y* = m2*x* + b2* Соответственно можно показать, что mi* = b + dmi
a + cmi
и bi* = bi(d - cmi*) = bi ad - bc
a + cmi
где i = 1, 2. Точка пересечения линий после преобразования отыскивается таким же образом, что и в случае исходных линий: [Xi*] = [xi* yi*] = b1* - b2*
m2* - m1* b1*m2* - b2*m1*
m2* - m1* Воспользовавшись тремя предыдущими выражениями, получим:
[Xi*] = [xi* yi*] = a(b1 - b2) + c(b1m2 - b2m1)
m2 - m1 b(b1 - b2) + d(b1m2 - b2m1)
m2 - m1 Возврашаясь теперь к точке пересечения [xi yi] исходных линий и применяя уже полученную матрицу преобразования, имеем [xi* yi*] = [xi yi][T] = b1 - b2
m2 - m1 b1m2 - b2m1
m2 - m1 a b
c d = = a(b1 - b2) + c(b1m2 - b2m1)
m2 - m1 b(b1 - b2) + d(b1m2 - b2m1)
m2 - m1 Сравнение уравнений точек пересечения исходных линий и преобразованных показывает, что они одинаковы. Итак, точка пересечения преобразуется точно в другую точку пересечения. назад | содержание | вперед © ОСУ АВТФ