Оглавление Дополнительное чтение Учебник «Компьютерная графика» Математическое влияние объектов Основные понятия аналитической геометрии на плоскости

Методы определения коэффициентов плоскости

Хотя уравнение плоскости: ax + by + cz + d = 0, содержит четыре неизвестных коэффициента, его можно нормировать так, чтобы свободный коэффициент был равен единице: d = 1. Следовательно, трех неколлинеарных точек достаточно для определения этих коэффициентов. Подстановка координат трех неколлинеарных точек (x1, y1, z1), (x2, y2, z2), (x3, y3, z3) в нормированное уравнение дает:
ax1 + by1 + cz1 = -1
ax2 + by2 + cz2 = -1
ax3 + by3 + cz3 = -1.

В матричной форме это выглядит так:

Или так: |X||C| = |D| (*).

Решение этого уравнения дает значения коэффициентов уравнения плоскости: |C| = |X|-1|D|.

Другой способ используется, если известен вектор нормали к плоскости, то есть n = ai + bj + ck, где i, j, k — единичные векторы осей x, y, z соответственно. Тогда уравнение плоскости примет вид: ax + by + cz + d = 0.

Величина d вычисляется с помощью произвольной точки на плоскости. В частности, если компоненты этой точки на плоскости (x1, y1, z1), то: d= -(ax1 + by1 + cz1).

Поскольку объем вычислений в алгоритмах удаления невидимых линий или поверхностей растет с увеличением числа многоугольников, для описания поверхностей выгодно использовать многоугольники с более чем тремя сторонами. Эти многоугольники могут быть как невыпуклыми, так и неплоскими. Метод, предложенный Мартином Ньюэлом, позволяет найти как точное решение для уравнений плоскостей, содержащих плоские многоугольники, так и «наилучшее» приближение для неплоских многоугольников. Этот метод эквивалентен определению нормали в каждой вершине многоугольника посредством векторного произведения прилежащих ребер и усреднения результатов. Если a, b, c, d — коэффициенты уравнения плоскости, то (здесь n — число вершин многоугольника)
a = S(yi - yj)(zi + zj)
b = S(zi - zj)(xi + xj) (**)
c = S(xi - xj)(yi + yj), где
if i = n then j = 1 else j = i + 1, a d вычисляется с помощью любой точки на плоскости. Этот метод иллюстрируется примером 1.

Пример 1. Уравнения плоскостей. Рассмотрим четырехсторонний плоский многоугольник, описываемый четырьмя вершинами V1(1, 0, 0), V2(0, 1, 0), V3(0, 0, 1) и V4(1, -1, 1) ( рис. 5.1).

рис. 5.1

Используя вершины V1, V2, V4 и уравнение (*), получаем:

Или, разрешая относительно коэффициентов уравнения плоскости:

Уравнение плоскости теперь имеет вид:
-x - y - z + 1 = 0 или x + y + z - 1 = 0.

Решая другим методом, можем получить нормаль к этой плоскости, используя векторное произведение пары векторов, являющихся смежными ребрами одной из вершин, например V1:

i, j, k — единичные векторы осей x, y, z соответственно. Используя уравнение d = -(ax1 + by1 + cz1) и V4, получаем значение постоянного члена в уравнении плоскости:
d = -1(1 - 1 + 1) = -1.

Следовательно, уравнение плоскости опять имеет вид:
x + y + z - 1 = 0.

Обращаясь теперь к методу Ньюэла при n = 4, получаем из уравнения (**):

a = (y1 - y2)(z1 + z2) + (y2 - y3)(z2 + z3) + (y3 - y4)(z3 + z4) + (y4 - y1)(z4 + z1) = (-1)(0) + (1)(1) + (1)(2) + (-1)(1) = 2
b = (z1 - z2)(x1 + x2) + (z2 - z3)(x2 + x3) + (z3 - z4)(x3 + x4) + (z4 - z1)(x4 + x1) = (0)(1) + (-1)(0) + (0)(1) + (1)(2) = 2
c = (x1 - x2)(y1 + y2) + (x2 - x3)(y2 + y3) + (x3 - x4)(y3 + y4) + (x4 - x1)(y4 + y1) = (1)(1) + (0)(1) + (-1)(-1) + (0)(-1) = 2.

А используя V4, получаем для постоянного члена:
d = -(2 - 2 + 2) = -2.

После деления на 2 уравнение плоскости вновь принимает вид:
x + y + z - 1 = 0.

Следующий пример проиллюстрирует метод Ньюэла для почти плоских многоугольников.

Пример 2. Неплоские многоугольники. Рассмотрим почти плоский многоугольник, описанный четырьмя вершинами V1(1, 0, 0), V2(0, 1, 0), V3(0, 0, 1) и V4(1.1, -1, -1). Вычисляя нормаль в каждой вершине через векторное произведение пары прилежащих ребер, имеем:
n1 = V1V2 x V1V4 = i + j + 0.9k
n2 = V2V3 x V2V1 = i + j + k
n3 = V3V4 x V3V2 = i + 1.1j + 1.1k
n4 = V4V1 x V4V3 = i + 1.1j + k.

Усредняя эти нормали, получаем:
n = i + 1.05j + k.

Определение постоянного члена в уравнении плоскости с использованием одной из вершин, например V1, дает d = -1. Следовательно, приближенное уравнение плоскости таково:
x + 1.05y + z - 1 = 0.

Метод Ньюэла приводит к такому же результату. В частности
a = (-1)(0) + (1)(1) + (1)(2) + (-1)(1) = 2
b = (0)(1) + (-1)(0) + (0)(1.1) + (1)(2.1) = 2.1
c = (1)(1) + (0)(1) + (-1.1)(-1) + (0.1)(-1) = 2.

Вычисление d с использованием V1 и деление на 2 дает такое же приближенное уравнение плоскости. Аппроксимирующая плоскость проходит через прямую x = z и содержит вершины V1 и V2. Однако V2 и V4 немного смещены по разные стороны от этой плоскости.

Математическое влияние объектов Основные понятия аналитической...