Математические основы компьютерной графики для начертательной геометрии

Бесплатный доступ

В статье представлены основные математические методы в стереометрии достаточные для реализации программной библиотеки для визуализации или верификации задач по начертательной геометрии. Охватываются различные формы представления прямой и плоскости в аналитическом виде и их преобразований, задачи взаимного расположения прямых и плоскостей и задачи построения проекций. На основе библиотеки ведется разработка интерактивной обучающей системы для начертательной геометрии.

Начертательная геометрия, алгоритмы, визуализация, стереометрия, компьютерная графика, обучающие системы

Короткий адрес: 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.
Статья научная