Математические основы компьютерной графики для начертательной геометрии
Автор: Морозова М.А.
Журнал: Международный журнал гуманитарных и естественных наук @intjournal
Рубрика: Физико-математические науки
Статья в выпуске: 10-2 (73), 2022 года.
Бесплатный доступ
В статье представлены основные математические методы в стереометрии достаточные для реализации программной библиотеки для визуализации или верификации задач по начертательной геометрии. Охватываются различные формы представления прямой и плоскости в аналитическом виде и их преобразований, задачи взаимного расположения прямых и плоскостей и задачи построения проекций. На основе библиотеки ведется разработка интерактивной обучающей системы для начертательной геометрии.
Начертательная геометрия, алгоритмы, визуализация, стереометрия, компьютерная графика, обучающие системы
Короткий адрес: https://sciup.org/170196563
IDR: 170196563 | DOI: 10.24412/2500-1000-2022-10-2-215-219
Текст научной статьи Математические основы компьютерной графики для начертательной геометрии
Современная компьютерная графика предназначена в основном для индустрии развлечений и широко используется в компьютерных играх, кино или рекламе. Современные движки типа Unreal Engine или Unity способны обеспечивать кинематографическое качество изображения. Обратной стороной такой производительности является тот факт, что современные видеоадаптеры предназначены для работы с полигонами и шейдерами, в то время как возможности работы с векторной графикой либо отсутствуют, либо реализованы в режиме совместимости.
Реализация интерактивной обучающей системы для начертательной геометрии с использованием современных технологий требует решать два вида проблем - кор-
ректного визуального отображения построений и верификации решений. Для решения обеих проблем необходимо программно реализовать алгоритмы геометрии для прямых, плоскостей, их пересечений, проекций или следов. Например, если в результате решения должна получиться прямая, параллельная заданной, то, во-первых, необходимо проверить, что прямая однозначно определена, а затем проверить ее на параллельность.
Прямая полностью определена, когда в аналитическом виде можно получить ее каноническое уравнение, т. е. уравнение прямой, проходящей через точку (х0; у0; Z 0 ) и параллельно вектору
(т; п; р):
х-Хо У — Уо
Z-Zo
т п
Р
Однако для задач визуализации в проще будет использовать параметрическую форму
( х = mt + х0 у = nt+ у о z = pt + z o
В то же время, в задачах начертательной геометрии прямая может быть задана как двумя точками, так и двумя плоскостями, соответственно существует необходимость преобразования таких случаев в канонический вид:
Х — Х1 У — У1 Z — Z1
х-х2 у-У2 Z — Z2
Направляющий вектор будет равен
(X2 — Х1; У2 — у1; Z2 — Z1)
Для проверок построений необходимо также уметь аналитически определять положение прямых в пространстве. Две прямые могут скрещиваться, пересекаться в точке, быть параллельными или совпадать.
Для определения взаимного расположения прямых заданных видом (2) найдем сначала вектор, проходящий через точки M 1 и M 2 , которыми заданы обе прямые (4). Если прямые скрещиваются, то смешанное произведение векторов должно быть отлично от нуля:
(Р1 • Р2 • М1М2) * 0
Вычислим смешанное произведение векторов:
1П2 m1 ^ |Р 2 |
I m 1 m 2 Х 2 — хы (^•1^^ М^) = \П1 П 2 У 2 —У 1 | 1 Р 1 Р 2 Z 2 — Z 1 | У 2— У 1| |П 1 У 2 1 , . |П 1 П 2| Z 2 —Z 1|— m2 • | P 1 Z 2 —Z 1| + (X2—Х1 )^|Р 1 Р 21 (6) |
Если векторы компланарны, необходимо проверить векторы р^ и р^ на коллинеарность. Для этого необходимо составить систему уравнений из соответствующих векторов. Если все три коэффициента γ совпадают, то прямые либо параллельны, либо совпадают:
Г m2 =yi^mi )П2=У2^П1 ( Р2 = уз • pi
Если прямые параллельны, то у них нет общих точек а значит точка М1 не подходит для второй прямой:
X i — X 2
У1 — У2 _ Z1 — Z2
m 2
^ 2
Р 2
Если прямые пересекаются, то можно найти их точку пересечения. Пусть прямые заданы видом (2):
! х = m1t + х1 у = п^ + У 1 Z = P 1 t + Z 1
! х = m2s + х2 У = ^ 2 S + У 2 Z = P 2 S + Z 2
Тогда поскольку точка M (х0; у0; z0) пересечения прямых принадлежит обеим прямым, то мы можем найти значения параметра t и s:
( X0 = m 1 t + X 1 y 0 = П 1 1 + У 1 Z o = P i t + Z 1
tXo = m2S + X2
M: { Уо = ^s + У2 ( Zo =P2S + Z2
В результате можно составить следующую систему уравнений с двумя неизвестными. Если прямые пересекаются, то система совместна и имеется единственное решение:
Гm1t + X1 = m2s + x2 Г t = (m2s+X2 %1)
] nt + У-1 = n2s + y2 => J m1
I 1 ?l 2 22 I (m2s+x2-^1) ,
(^ Pit + Zi = P2S + Z2 (^ni —m;— + yi = n2s + y2
Аналогично, необходимо также решать и задачи взаимного расположения прямой и плоскости в пространстве. Существуют три варианта расположения прямой и плоскости: прямая пересекает плоскость в точке, прямая параллельна плоскости и прямая лежит в плоскости.
Прямая (1) пересекает плоскость о: Ax+ By+Cz+D = 0 тогда и только тогда, когда ее направляющий вектор (m;n;p) не ортогонален вектору нормали плоскости n̅ (A;B;C), то есть скалярное произведение вектора нормали и направляющего вектора отлично от нуля:
Am + Вп + Cp ^ 0
Если прямая параллельна плоскости, то точка M (x0;y0;z0) не удовлетворяет уравне нию плоскости:
( Am + Вп + Ср = 0
{Ax0 + By0 + CZ0+D ^ 0
А если лежит в плоскости, то удовлетворяет:
Г Am + Вп + Ср = 0
{Ax0 + By0 + Cz0 + D = 0
Для того, чтобы найти точку пересечения Q (xq;yq;zq) прямой и плоскости необходимо отметить, что эта точка принадлежит прямой, а следовательно, при некотором параметре t 0 удовлетворяет уравнениям:
{ xq = mt0 + X0
yq=nt0+y0 Q: (mt0 + X0;nt0+y0;pt0 + Z0)
Zq = P t0 + Z0
С другой стороны, точка Q (mt0 + x0; nt0 + y0; Pt0 + z0) принадлежит плоскости о следовательно, координаты точки должны удовлетворять уравнению плоскости:
A(mt0 + x0) + B(nt0 + y0) + C(Pt0 + z0) + D = 0
Amt0 + Bnt0 + CPt0 = —D — Ax0 — By0
t0
—D — AX0 — By0 — CZ0
— Cz 0
Am + Вп + Cp
Для того, чтобы построить плоскость, проходящую через прямую и перпендикулярную данной плоскости а достаточно любой точки, принадлежащей этой прямой, направляющего вектора (1) и нормали п к плоскости а:
I х — х0 т А|
|у —У о п в| = 0 (17)
I z — z0 р СI
(х —В" (у — Уо). т ^+(z —z „ )J m А\ =0 Р с р с I п в ।
(х — х0) • (пС — рВ) — (у — у0) • (тС — рА) + (z — z0) • (тВ — пА) = 0
Для проверки перпендикулярности плоскостей достаточно найти скалярное произведение их нормалей. Если оно равно 0, то плоскости перпендикулярны:
т 1 т2 + Л 1 Л 2 + р 1 р2 = 0 (18)
Проекция прямой m на плоскость а определяется системой уравнений плоскости ш, проходящей через эту прямую и перпендикулярную плоскости а (17) и самой а:
| Аах + Вау + Caz + Da =0
(Амх + Btoy + CMz + DM = 0
Что также можно выразить через точку пересечения Q (х ^ ; yq;zq) прямой с плоскость
а:
= (BaCto
/I Ва CJ |С , А,| |А , Ва
(|вм СМ| ; |СМ ам|;|ам вм
-
— ВмСа;СаАм
-
— СмАа;АаВм—АмВа)
Для решения задачи визуализации прямой на эпюре необходимо соответственно построить проекции прямой на плоскости Oxy, Oxz и Oyz. Поскольку в случае плоскостей осей координат одна из координат равна 0, очевидно, что в формуле (2) достаточно убрать соответствующую координату: z для плоскости Oxy, y для Oxz и x для Oyz.
В статье даны аналитические решения основных задач начертательной геометрии в компьютерной графике, например таких
как построение прямых и их проекций, взаимное расположение прямых и плоскостей, построение перпендикуляров и проекций. Приведенные выше решения легли в основу компьютерной библиотеки для визуализации простейших задач начертательной геометрии как часть задачи построения интерактивной системы обучения начертательной геометрии, разработка которой происходит в настоящее время на кафедре РК1 «Инженерная графика» в МГТУ им. Н.Э. Баумана.
Список литературы Математические основы компьютерной графики для начертательной геометрии
- Никулин Е.А. Компьютерная графика. Модели и алгоритмы. Учебное пособие - СПб.: Лань, 2018.
- Solomon J. Numerical Algorithms: Methods for Computer Vision, Machine Learning, and Graphics. CRC Press - 2015.