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