3.2.4. ВЗАИМНОЕ ПОЛОЖЕНИЕ ТОЧКИ И ОБЪЕКТА
Введенные правила задания примитивов позволяют формальными методами определять взаимное расположение любой точки и конкретного примитива. Зная правила объединения примитивов в объект, возможно определить взаимное положение точки и объекта. Взаимное положение охарактеризуем через признак или функцию принадлежности
(в более краткой записи
), где
– координаты точки;
– обозначение примитива, объекта или другой фигуры. Функция
принимает значение
, если точка
находится вне объекта
,
, если точка лежит на поверхности
;
, если точка лежит внутри
. В формальных терминах положение точки и примитива определяется следующим образом. Пусть примитив
состоит из
уравнений вида
, где знаки функций выбраны по правилу (3.2.2). Тогда
, если
;
, если
, где
;
, если
, где
.
Точка лежит внутри примитива, если в этой точке значения всех функций, слагающих поверхность примитива, положительны. Точка лежит на поверхности примитива, если существует хотя бы одна функциональная поверхность, значение которой в точке равно нулю, а значения остальных функций неотрицательны. Точка лежит вне примитива, если существует хотя бы одна функция поверхности, значение которой в этой точке отрицательно.
Рассмотрим теперь правила определения взаимного положения точки и объекта, которые очень важны для реализации процесса построения изображения. При трассировании лучей световая прямая пересекается с множеством поверхностей различных примитивов. Прежде всего следует установить факт принадлежности очередной точки пересечения поверхности объекта. Этот факт зависит от взаимного расположения точки и примитивов и правила пространственного комбинирования примитивов.
Таблица 3.2.1 – это правила определения положения точки по отношению к комбинации пары примитивов
и
.
Таблица 3.2.1.

|

|

|

|

|

|

|
-1
-1
-1
0
0
0
1
1
1
|
-1
0
1
-1
0
1
-1
0
1
|
1
1
1
0
0
0
-1
-1
-1
|
-1
-1
-1
0
-1
-1
1
0
-1
|
-1
0
1
-1
-1
0
-1
-1
-1
|
-1
0
1
0
0
1
1
1
1
|
-1
-1
-1
-1
0
0
-1
0
1
|
Заметим, что если
, то
т. е. поверхность фигуры и ее дополнения являются общими.
В табл. 3.2.1 под примитивами
и
понимаются пространственно ограниченные выпуклые трехмерные тела. На основании составленной таблицы формальными методами может быть определено положение точки по отношению к сложному объекту, состоящему из многих примитивов. Например, пусть точка лежит на поверхности
, т.е.
; вне
, т.е.
; внутри
, т.е.
, а объект задается описанием
. Необходимо определить
. Сначала определим
, затем
. В соответствии с принятой интерпретацией булевого выражения результат означает, что точка лежит вне объекта.
Приведем другой пример (рис. 3.2.12). Объект
сконструирован по правилу
, точка
принадлежит косому торцу примитива
и лежит на его оси, т.е.
. Соответственно
,
,
. Определим положение точки по отношению к объекту:
,
, тогда
, т.е. точка
не принадлежит объекту, как и показано на рисунке.

Рис. 3.2.12. Положение точки
относительно примитивов и объекта
На рис. 3.2.13 показаны два объекта
и
, составленные из примитивов
по правилам
,
. Положение точки
показано на изображениях примитивов; тогда
,
,
. Пользуясь табл. 3.2.1, можно получить:
,
, т. е. точка
лежит вне объекта
. Для второго объекта справедливо
; тогда
, т. е. точка
лежит внутри
, как и показано на рис.3.2.13.

Рис. 3.2.13. Положение точки
относительно примитивов и объекта