МОДЕЛИ. ЭЛЕМЕНТЫ МОДЕЛЕЙ
При формировании 3D модели используются: Ø двумерные элементы (точки, прямые, отрезки прямых, окружности и их дуги, различные плоские кривые и контуры); Ø поверхности (плоскости, поверхности, представленные семейством образующих, поверхности вращения, криволинейные поверхности); Ø объемные элементы (параллелепипеды, призмы, пирамиды, конусы, произвольные многогранники и т.п.). Из этих элементов с помощью различных операций формируется внутреннее представление модели. Методы построения моделей Используются два основных способа формирования геометрических элементов моделей - это построение по заданным отношениям (ограничениям) и построение с использованием преобразований. Построение с использованием отношений Построение с использованием отношений заключается в том, что задаются: Ø элемент, подлежащий построению; Ø список отношений и элементы, к которым относятся отношения. Например, построение прямой, проходящей через точку пересечения двух других прямых и касательную к окружности. Используется два способа реализации построения по отношениям - общий и частный. При общем способе реализации построение по заданным отношениям можно представить в виде двухшаговой процедуры: Ø на основе заданных типов отношений, элементов и параметров строится система алгебраических уравнений; Ø решается построенная система уравнений. Очевидное достоинство такого способа - простота расширения системы - для введения нового отношения достаточно просто написать соответствующие уравнения. Основные проблемы такого способа заключаются в следующем: Ø построенная система уравнений может иметь несколько решений, поэтому требуется выбрать одно из них, например в диалоговом режиме; Ø система уравнений может оказаться нелинейной, решаемой приближенными методами, что может потребовать диалога для выбора метода(ов) приближенного решения. В связи с отмеченными проблемами общий подход реализован только в наиболее современных системах и при достаточно высоком уровне разработчиков в области вычислительной математики. Большинство же систем реализует частный подход, первым приходящий в голову и заключающийся в том, что для каждой триады, включающей строящийся элемент, тип отношения и иные элементы, затрагиваемые отношением, пишется отдельная подпрограмма (например построение прямой, касательной к окружности в заданной точке). Требуемое построение осуществляется выбором из меню и тем или иным вводом требуемых данных. Преимущества такого подхода ясны - проще писать систему. Не менее очевидны и недостатки, когда пользователю требуется использовать сильно разветвленные меню и/или запоминать мало вразумительные сокращения или пиктограммы, так как обычно число требуемых вариантов построения исчисляется сотнями. Расширение системы, реализуемое добавлением новой подпрограммы, требует ее перепроектирования, по крайней мере, в части обеспечения доступа пользователя к новым возможностям. В некотором смысле предельный пример этого подхода - система AutoCAD фирмы Autodesk. Авторы даже гордятся сложностью системы: "AutoCAD предоставляет эту крайне сложную технологию". Понятно, что перспективы за общим подходом с разумным использованием частных решений. Вместе с тем устаревшие системы типа AutoCad скорее всего также будут продолжать использоваться в силу распространенности, сложившегося круга обученных пользователей и т.п. Построение с использованием преобразований Построение нового объекта с использованием преобразований заключается в следующем: Ø задается преобразуемый объект; Ø задается преобразование (это может быть обычное аффинное преобразование, определяемое матрицей, или некоторое деформирующее преобразование, например замена одного отрезка контура ломаной); Ø выполнение преобразования; в случае аффинного преобразования для векторов всех характерных точек преобразуемого объекта выполняется умножение на матрицу; для углов вначале переходят к точкам и затем выполняют преобразование.
|