Автор работы: Пользователь скрыл имя, 13 Декабря 2012 в 19:47, реферат
Что означает мультимедиа? Каковы сферы ее применения? Целесообразно начать рассмотрение вопросов данной работы с главных исходных понятий, просмотреть существующие варианты определений, далее рассмотреть какие задачи в зависимости от требований сферы применения решают мультимедийные системы, что входит в их состав, как использовать компьютер в качестве основы для создания звукозаписывающей студии. Мультимедиа – это технология, позволяющая объединить данные, звук, анимацию и графические изображения, переводить их из аналоговой формы в цифровую и обратно.
Мультимедийные системы.
Введение
Мультимедиа
Основные понятия и разновидности мультимедиа
Мультимедийный продукт
Области применения
Некоторые примеры мультимедийных систем
2. Использование JAVA-технологий для разработки графических приложений
Введение
Инструменты
Разработки
Разработки Java 2D
Разработки Java 3D
Разработки 3D Paint
Заключение
Список используемой литературы
Класс Container сам является невидимым компонентом, он расширяет класс Component. Таким образом, в контейнер наряду с компонентами можно помещать контейнеры, в которых находятся какие-то другие компоненты, достигая тем самым большой гибкости расположения компонентов.
Иерархия классов AWT
Иерархию основных классов AWT составляют готовые компоненты: Button, Canvas, Checkbox, Choice, Container, Label, List, Scrollbar, TextArea, TextField, Menubar, Menu, PopupMenu, Menultem, CheckboxMenuItem. Если этого набора не хватает, то от класса Canvas можно породить собственные "тяжелые" компоненты, а от класса Component — "легкие" компоненты (используемые в библиотеке Swing).
Основные контейнеры – это классы Panel, ScrollPane, Window, Frame, Dialog, FileDialog. Свои "тяжелые" контейнеры можно породить от класса Panel, а "легкие" — от класса Container.
Целый набор классов помогает размещать компоненты, задавать цвет, шрифт, рисунки и изображения, реагировать на сигналы от мыши и клавиатуры.
Графические примитивы
При создании компонента, т. е. объекта класса Component, автоматически формируется его графический контекст (graphics context). В контексте размещается область рисования и вывода текста и изображений. Контекст содержит текущий и альтернативный цвет рисования и цвет фона — объекты класса Color, текущий шрифт для вывода текста — объект класса Font.
В контексте определена система координат, начало которой с координатами (0, 0) расположено в верхнем левом углу области рисования, ось Ох направлена вправо, ось Оу — вниз. Точки координат находятся между пикселями.
Управляет контекстом класс Graphics или новый класс Graphics2D, введенный в Java 2. Поскольку графический контекст сильно зависит от конкретной графической платформы, эти классы сделаны абстрактными. Поэтому нельзя непосредственно создать экземпляры класса Graphics или Graphics2D.
Однако каждая виртуальная машина Java реализует методы этих классов, создает их экземпляры для компонента и предоставляет объект класса Graphics методом getGraphics() класса Component или как аргумент методов paint() и update().
Методы класса Graphics
В следующей таблице приведены некоторые методы класса Graphics:
Метод |
Описание |
Работа с цветом | |
setColor (Color newColor) |
изменить текущий цвет |
getColor () |
получить текущий цвет |
Color(int red, int green, int blue) |
создает цвет, получающийся как смесь красной red, зеленой green и синей blue составляющих. Эта цветовая модель называется RGB. Каждая составляющая меняется от 0 (отсутствие составляющей) до 255 (полная интенсивность этой составляющей). |
Color(float red, float green, float blue) |
интенсивность составляющих можно изменять более гладко вещественными числами от 0.0 (отсутствие составляющей) до 1.0 (полная интенсивность составляющей) |
Color(int rgb) |
задает все три составляющие в одном целом числе. В битах 16—23 записывается красная составляющая, в битах 8—15 — зеленая, а в битах 0—7 — синяя составляющая цвета. |
Работа с чертежами | |
drawLine(int xl, int yl, int х2, int y2) |
вычерчивает текущим цветом отрезок прямой между точками с координатами (xl, yl) и (х2, у2). |
drawRect(int x, int у, int width, int height) |
чертит прямоугольник со сторонами, параллельными краям экрана, задаваемый координатами верхнего левого угла (х, у), шириной width пикселей и высотой height пикселей |
drawOval(int x, int у, int width, int height) |
чертит овал, вписанный в прямоугольник, заданный аргументами метода. Если width = height, то получится окружность |
drawArc(int x, int у, int width, int height, int startAngle, int arc) |
чертит дугу овала, вписанного в прямоугольник, заданный первыми четырьмя аргументами. |
drawRoundRect (int x, int у, int width, int height, int arcWidth, int arcHeight) |
чертит прямоугольник с закругленными краями. Закругления вычерчиваются четвертинками овалов, вписанных в прямоугольники шириной arcWidth и высотой arcHeight, построенные в углах основного прямоугольника |
drawPolyline(int[] xPoints, int[] yPoints, int nPoints) |
чертит ломаную с вершинами в точках (xPoints[i], ypoints[i]) и числом вершин nPoints |
Работа с текстом | |
drawstring (String s, int x, int y) |
выводит строку s |
drawBytes(byte[] b, int offset, int length, int x, int у) |
выводит length элементов массива байтов, начиная с индекса offset |
drawChars(chart] ch, int offset, int length, int x, int у) |
выводит length элементов массива символов ch, начиная с индекса offset |
Работа со шрифтами | |
setFont(Font newFont) |
устанавливает текущий шрифт для вывода текста |
getFont () |
возвращает текущий шрифт |
Font (String name, int style, int size) |
задает Шрифт ПО имени name, со стилем style и размером size типографских пунктов. |
Таблица 1. Основные методы класса Graphics
Возможности Java 2D
В системе пакетов и классов Java 2D, основа, которой— класс Graphics2D пакета java.awt, имеется несколько принципиально новых положений.
С такими возможностями Java 2D стала полноценной системой рисования, вывода текста и изображений.
2.2. Разработки Java 3D
Мы живем в трехмерном мире. Наше зрение позволяет нам видеть в трех измерениях с координатами x, y и z. Многие из поверхностей, на которых отображается графика, — например, экраны мониторов или листы бумаги — являются плоскими. Программирование трехмерной графики позволяет нам воспроизводить реалистичные модели нашего объемного мира на поверхностях в двухмерном виде. Трехмерная графика имеет преимущества в том смысле, что практически все, что вы можете видеть вокруг, можно моделировать — цифровым образом представить форму и размеры, а также отобразить — нарисовать на экране компьютера.
В настоящее время существует большое число приложений, позволяющих работать с трехмерной графикой — от игр и медицинского оборудования до трехмерных игр и хранителей экранов. Достижения в области компьютерного аппаратного обеспечения привели к значительному росту интереса к трехмерной графике. Успех в создании высокопроизводительного аппаратного обеспечения способствовали разработкам высокоэффективных интерфейсов прикладного программирования трехмерной графики — от созданного в 70-х годах API CORE от Siggraph и создания в 80-х годах прошлого века OpenGL компанией SGI, до сегодняшних средств программирования трехмерной графики, включая Microsoft DirectSD и Java3D.
Трехмерная графика требует графических алгоритмов, использующих сложный математический аппарат. Java 3D предоставляет разработчикам надежные и развитые возможности для работы с трехмерной графикой, в то же время оставляя за сценой математику, необходимую для реализации графических алгоритмов. Java 3D — это высокоуровневый API программирования трехмерной графики. Java 3D управляет всеми необходимыми низкоуровневыми операциями для работы с графикой, поэтому разработчики могут создавать сложные трехмерные сцены, не задумываясь об используемом аппаратном обеспечении. Подобно Java, код Java 3D, будучи написанным, однажды, работает повсеместно. Приложения Java 3D будут работать аналогичным образом на различных графических платформах.
Sun Microsystems разрабатывала Java 3D API, имея в виду четыре основные цели: переносимость приложений, независимость от аппаратного обеспечения, масштабирование производительности и способность работать с трехмерной графикой через сеть. Упрощение сложных графических операций играло ключевую роль при разработке Java 3D API. Вот некоторые области и сферы применения API Java 3D:
Java 3D предлагает несколько функциональных возможностей, которые могут использоваться для разработки трехмерных графических приложений:
• Текстуры. Java 3D поддерживает наложение текстур на поверхности трехмерных фигур.
Сцены Java 3D.
Изображения, отображаемые с помощью Java 3D, называют сценами. Сцену также называют виртуальной вселенной – это трехмерное пространство, которое содержит набор фигур. Корнем сцены Java 3D является объект VirtualUniverse. Объект VirtualUniverse имеет систему координат для местоположения графов сцены, которые она содержит. Каждая трехмерная сцена Java 3D описывается рядом графов сцены – иерархических структур, которые задают атрибуты трехмерной среды. Каждый граф сцены прикреплен к объекту VirtualUniverse в определенной точке системы координат виртуальной системы. Граф сцены состоит из внутренней системы координат и графов – ветвей. Каждый граф сцены имеет внутреннюю систему координат. Класс Locale является корневым узлом графа сцены и содержит вложенные системы координат для виртуальной вселенной и ряд графов-ветвей. В Java 3D имеется два типа графов-ветвей: графы-ветви содержимого и графы-ветви представления. Графы-ветви содержимого задают содержимое в трехмерных сценах, включая геометрию, освещение, текстуры, вуалирование и поведение. Графы-ветви представления содержат платформы наблюдения — коллекции объектов, которые определяют перспективу, позицию, ориентацию и масштаб в трехмерных сценах. Платформу наблюдения также называют точкой зрения.
Класс SceneGraphObject Java 3D — базовый класс для всех объектов в графе-ветви. Объект SceneGraphObject может содержать группу Group, которая представляет собой узел, содержащий множество дочерних узлов. Дочерними узлами группы Group могут быть группы (объект Group), листья (объект Leaf) или узлы-компоненты (объект NodeComponents). Узлы-листья Leaf задают геометрию, освещение и звук в графах-ветвях содержимого и компоненты платформы наблюдения в графе-ветви представления. Объекты NodeComponent задают различные компоненты в объектах Group и Leaf, такие как текстура и атрибуты цвета.
В следующей таблице приведены некоторые подклассы классов 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. Разработки 3D Paint
В данной работе я создал графический редактор 3D Paint.
Идеей моего проекта является использование двухмерной и трехмерной графики на Java для создания удобного и многофункционального графического редактора.
Для реализации
проекта мне потребовалась
На первом этапе я создал саму визуальную оболочку (каркас графического редактора); трехмерные фигуры: «цветной куб», «цилиндр», «сфера», «параллелепипед», «конус» и создание трехмерного текста, с возможностью изменение типа шрифта, размера и стиля; панель изменения цвета для фигур и для фона, где размещаются фигуры.