Курсовая работа: Использование JAVA технологий для разработки графических приложений
В следующей таблице приведены некоторые подклассы классов Group, Leaf и Node-Component:
Класс | Описание | |
Частичный список классов класса Group Java 3D | ||
BranchGroup | Корневой узел (объект Node) графа сцены, который вложен в класс Locale | |
Switch | Может отображать либо один дочерний узел, либо несколько дочерних узлов, задаваемых маской | |
TransformGroup | Содержит преобразование (например, перемещение, вращение или масштабирование) | |
Частичный список классов класса Leaf | ||
Behavior |
Содержит методы для получения пользовательского ввода (например, нажатие клавиш и щелчков мышью), а также методы, которые описывают поведение объекта при определенных событиях (например, при столкновениях) | |
Light | Описывает набор параметров источников освещения Java 3D | |
Shape3D | Описывает трехмерные геометрические объекты | |
ViewPlatform | Управляет точкой наблюдения трехмерной сцены | |
Частичный список классов класса NodeComponent | ||
Appearance | Задает атрибуты объекта Shape3D, такие как цвет и текстура | |
Material | Описывает свойства освещенного объекта (например, отраженный цвет. |
Таблица 2. Основные методы подкласса классов Group , Leaf и Node - Component
2.3. Разработки 3 D Paint
В данной работе я создал графический редактор 3D Paint.
Идеей моего проекта является использование двухмерной и трехмерной графики на Java для создания удобного и многофункционального графического редактора.
Для реализации проекта мне потребовалась изучить подробно графику на Java и разработки вышеперечисленных программных интерфейсов Java 2D и Java 3D.
На первом этапе я создал саму визуальную оболочку (каркас графического редактора); трехмерные фигуры: «цветной куб», «цилиндр», «сфера», «параллелепипед», «конус» и создание трехмерного текста, с возможностью изменение типа шрифта, размера и стиля; панель изменения цвета для фигур и для фона, где размещаются фигуры.
На втором этапе я планирую создать панель с двухмерной графикой, которая будет рисовать: линии, прямоугольники, треугольники и другие элементы, с возможностью изменения цвета, затирания, трансформации. Также я хочу связать трехмерную и двухмерную графику для создания общих проектов, таких как дизайн трехмерного объекта или обычное рисование графических картинок.
В начала проекта, используя программное обеспечение NetBeansIDE 6.0, я создал так называемый каркас приложения (Рис 1). Он позволяет управлять, созданными фигурами трехмерной графики. Все кнопки и панели (меню, управления) находятся в пакетах SWING и AWT.
Рис 1. Графический редактор 3 D Paint
На левой панели приложения располагаются кнопки с фигурами, на нижней панели кнопки управления этими фигурами, центральная панель отображает фигуры и действия над ними. Панели расположены при помощи раскладчика BorderLayout (раскладчик по сторонам света). А кнопки на этих панелях располагаются при помощи раскладчика FreeDesignLayout.
Далее создал примитивные геометрические фигуры, используя библиотеку com.sun.j3d.utils.geometry. Класс geometry хранит в себе трехмерные фигуры: cylinder, box, cube, sphere, cone.
Например для создания трехмерной фигуры «Цилиндр» используется следующий код:
Cylinder CylinderObj = new Cylinder(0.7f, 1.4f, ap);
objTrans.addChild(CylinderObj);
где 0.7 f и 1.4 f это размер фигуры (ширина и длина).
Фигура может выполнять следующие действия:
MouseRotate behavior = new MouseRotate(objTrans);
objTrans.addChild(behavior);
behavior.setSchedulingBounds(bounds);
- вращениеприпомощилевойкнопкимыши.
MouseZoom behavior2 = new MouseZoom(objTrans);
objTrans.addChild(behavior2);
behavior 2. setSchedulingBounds ( bounds );
- изменение размера фигуры при помощи колесика мыши (трансформация).
orbit = new OrbitBehavior(c, OrbitBehavior.REVERSE_ALL |