Учебное пособие / Метематические основы машинной графики / exilim / 2.10.asp-ThemeID=2
.htmДвумерные преобразования - 2.10. Аксонометрические проекции 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 [программа] [тесты] [лабораторные] [вопросы] [литература]
2. Пространственные преобразования и проекции
2.10. Аксонометрические проекции Одна ортографическая проекция не может дать представления об общей трехмерной форме объекта. Это ограничение можно преодолеть с помощью аксонометрических проекций. Аксонометрическая проекция образуется манипулированием объекта с помощью поворотов и перемещений таким образом, чтобы были видны по крайней мере три соседние грани. Результат затем проецируется с центром проекции, расположенным в бесконечности, на одну из координатных плоскостей, обычно на плоскость z = 0. Если грань не параллельна плоскости проекции, то аксонометрическая проекция не показывает истинную форму этой грани. Однако остаются постоянными относительные длины параллельных в исходном пространстве линий, т.е. параллельные линии одинаково укорачиваются (искажаются). Коэффициент искажения есть отношение длины проекции отрезка к его истинной длине. Представляют интерес три аксонометрические проекции: триметрическая, диметрическая и изометрическая. В триметрической проекции меньше всего ограничений, а в изометрической - больше всего. В самом деле, изометрическая проекция есть частный случай диметрической, а диметрическая проекция есть частный случай триметрической. Аксонометрическая проекция из трехмерного пространства на плоскость z = n может быть получена следующим образом: [X Y Z H] = [x y z 1] 1 0 0 0
0 1 0 0
0 0 0 0
0 0 n 1 Заметим, что это преобразование представляет собой перенос изображения в направлении оси z на величину n, обусловленный преобразованием [T'] = 1 0 0 0
0 1 0 0
0 0 1 0
0 0 n 1 который следует за проецированием из бесконечности в плоскость z = 0, заданным преобразованием [T''] = 1 0 0 0
0 1 0 0
0 0 0 0
0 0 n 1 Как было указано ранее, аксонометрические проекции строятся произвольными поворотами вокруг любых координатных осей, совершаемыми в произвольном порядке, с последующим проецированием на плоскость z = 0. Общая матрица триметрической проекции равна [T] = [Ry][Rx][Pz] = cosφ 0 -sinφ 0
0 1 0 0
sinφ 0 cosφ 0
0 0 0 1 1 0 0 0
0 cosθ sinθ 0
0 -sinθ cosθ 0
0 0 0 1 1 0 0 0
0 1 0 0
0 0 0 0
0 0 0 1 = cosφ sinφ sinθ 0 0
0 cosθ 0 0
sinφ -cosφ sinθ 0 0
0 0 0 1 где φ - угол поворота вокруг оси y, θ - угол поворота вокруг оси x. В общем случае для триметрической проекции коэффициенты искажения по каждой из проецируемых главных осей (х, y и z) не равны друг другу. Наложение ограничений на коэффициенты уменьшает диапазон триметрических проекций. Однако для любой конкретной триметрической проекции коэффициент искажения вычисляют с помощью применения общей матрицы преобразования к единичным векторам вдоль главных осей. В частности, [U][T] = 1 0 0 1
0 1 0 1
0 0 1 1 [T] = xx* yx* 0 1
xy* yy* 0 1
xz* yz* 0 1 где [U] - матрицаединичных векторов вдоль нетрасформированнхы осей x, y и z соотвественно, а [T] - общая матрица триметрической проекции. Тогда коээфициенты искажения вдоль спроецированных главных осей равны: fx =
xx*2 + yx*2 fy =
xy*2 + yy*2 fz =
xz*2 + yz*2 Пример 2.1. Триметрическая проекция. Рассмотрим рис. 2.3., построенный с помощью поворота куба с отсеченным углом на угол φ = 30°, а затем поворота на угол θ = 45° вокруг оси x и последующего параллельного проецирования на плоскость z = 0. Координатный вектор куба с отсеченным углом [X] = 0 0 1 1
0 1 1 1
1 0,5 1 1
0,5 1 1 1
0 1 1 1
0 0 0 1
1 0 0 1
1 1 0 1
0 1 0 1
1 1 0,5 1 Общая матрица триметрической проекции для данных углов равна [T] = [Ry][Rx][Pz] = 0,926
0
0,378
0 0,134
0,935
-0,372
0 0
0
0
0 0
0
0
1 Вспоминая координатный вектор [X] (см. пример 2.1.), получим координаты [X*] = [X][T] = 0,378
1,304
1,304
0,841
0,378
0
0,926
0,926
0
1,115 -0,327
-0,194
0,274
0,675
0,608
0
0,134
1,069
0,935
0,905 0
0
0
0
0
0
0
0
0
0 1
1
1
1
1
1
1
1
1
1 Результат изображен на рис. 2.4. Диметрическая проекция позволяет проводить измерения с одинаковым масштабным множителем по двум преобразованным главным осям. Измерение вдоль третьей оси требует другого масштабного множителя. Это может привести к путанице и ошибкам, если требуется точное масштабирование размеров спроецированного объекта. Изометрическая проекция решает эту проблему. В изометрической проекции все три коэффициента искажения равны. Теперь приравняем квадраты коэффициентов искажения по осям y и z и получим: sin2θ = 1 - 2sin2θ
1 - sin2θ Из предыдущего равенства и равенства (2.6) следует, что sin2θ = 1/3 или sinθ = ±
1/3 и θ = ± 35,26° Тогда sin2φ = 1/3
1 - 1/3 = 1/2 и φ = ± 45° Коэффициент искажения для изометрической проекции равен f =
cos2θ =
2/3 = 0,8165 В самом деле, изометрическая проекция есть частный случай диметрической с fz = 0,8165 При построении изометрических проекций вручную важен угол, который составляет проекция оси х с горизонталью. Преобразование единичного вектора вдоль оси х с помощью матрицы изометрической проекции дает [U*x] = cosφ sinφ sinθ 0 0
0 cosθ 0 0
sinφ -cosφ sinθ 0 0
0 0 0 1 = [cosφ sinφsinθ 0 1] Тогда угол между проекцией оси х и горизонталью равен tdα = yx*
xx* = sinφsinθ
cosφ = ± sinθ поскольку sinφ = cosφ для φ = 45°. Следовательно, α = arctg(± sin35,26439°) = ± 30° Для построения изометрических проекций вручную обычно используется пластмассовый прямоугольный треугольник с углами 30° и 60°. Ниже приводится пример. Пример 2.3. Изометрическая проекция.
Снова рассмотрим куб с отсеченным углом (см. пример 2.2) и построим изометрическую проекцию для φ = -45° и α = 35.26439°. Преобразование изометрического проецирования имеет вид: [T] =