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

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

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

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

Короткий адрес: https://sciup.org/170196563

IDR: 170196563   |   DOI: 10.24412/2500-1000-2022-10-2-215-219

Mathematical foundations of computer graphics for descriptive geometry

The article presents the basic mathematical methods in stereometry sufficient to implement a software library for visualization or verification of descriptive geometry problems. It covers various forms of representation of a straight line and a plane in an analytical form and their transformations, the problems of the mutual arrangement of straight lines and planes and the problems of constructing projections. Based on the library, an interactive learning system for descriptive geometry is being developed.

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

Современная компьютерная графика предназначена в основном для индустрии развлечений и широко используется в компьютерных играх, кино или рекламе. Современные движки типа 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.