Программный продукт "Графический редактор учебно-методических материалов"

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



воляет изменить радиус окружности, при этом используются методы определенные в классе точка.

radius: real - хранит информацию о текущем радиусе окружности, необходим для сокращения вычислений при рисовании и вычисляется при изменении координат предыдущего члена.

numPoint: byte - позволяет узнать какое количество точек было задано. При помощи использования данного члена при задании окружности, можно узнать, задана она полностью, т.е. введены и центр окружности и точка, характеризующая радиус или задана только центральная точки и при следующем нажатии левой клавиши мыши будет задана точка для вычисления радиуса окружности.

rgnCircle: HRGN - позволяет в дальнейшем определить попадание точки в окружность и залить окружность требуемым цветом.

Закрытые свойства.: int {frozen} - свойство позволяет установить значение количества точек располагаемых на окружности для её построения ломаными линиями. Данный член класса не изменяется и является постоянным числом, определяемым при создании экземпляра класса.

Открытые свойства.

onResize() - позволяет отработать событие изменения размера сцены, так как при её изменении изменяется как позиция центральной точки окружности, так и точки используемой для вычисления радиуса.

Draw() - позволяет нарисовать окружность, используя ряд след. шагов: проверка выделения объекта и при условии выделения рисование прямоугольника подсветки; установка цвета и толщины линии рисовании окружности; вычисление точек окружности и их рисование соединяя точки ломаной замкнутой линией с использованием константы OpenGL GL_LINE_LOOP. Вычисление точек окружности производится по формуле:

, (6)

где Xc, Yc - центр окружности, numLines - значение одноименного свойства класса, i - номер точки для раiета.

getRegion() - позволяет создавать регион из точек окружности. Строится по промежуточным точкам, и позволяет при использовании в наследуемых классах производить заливку сложных регионов, путем выполнения пересечения данных регионов.

Закрытые методы.

setCoordPoint() - позволяет задать координаты центра или точки, характеризующей радиус окружности. Для определения характеристики: какая из точек задается в текущие момент - используется член класса numPoint.

3.3.1.7 Два множества

Класс Два множества предназначен для реализации функциональной возможности рисования диаграмм Эйлера-Венна. Суть данного класса состоит в том, что, используя базовый класс Примитив, позволяющий хранить экземпляры данного класса, как и остальные примитивы, создать совокупность двух окружностей, изображающих два пресекающихся множества. Такое изображение двух окружностей позволит применять заливку к трем отдельным областям, и тем самым реализовывать различные логические операции над множествами: пересечение, объединение, разность и другие.

Рисунок 3.3. Изображение двух пересекающихся множеств при помощи окружностей.

Для реализации данного класса потребовалось задание новых свойств и некоторых методов, описанных далее.

Открытые свойства.

FCircle: Circle, SCircle: Circle - члены класса Два множества обеспечивают храние информации об окружностях, изображающих множества и являются экземплярами класса Окружность.

SPoint: Point - предназначен для хранения информации о том, где располагается центр первой (левой) окружности. Данное свойство позволит в дальнейшем изменять местоположение примитива на экране, используя описанные выше процедуры.

Закрытые свойства.: real, oldMPY: real - назначение данных двух свойств аналогично назначению одноименных свойств других классов, описанных выше.: bool, fill2: bool,fill3: bool - при пересечении двух окружностей можно получить три отдельных сектора заливки: левый, центральный и правый. Свойства позволяют определить: была ли присвоена заливка каждой из заданных областей. В дальнейшем они применяются как для снятия, так и наложения цветовой однотонной заливки._B: HRGN - свойство описывает регион, позволяющий производить заливку крайней левой области, обозначенной на Рис. 3.3. цифрой 1, и реализующей логическую функцию _A: HRGN - свойство описывает регион, позволяющий производить заливку крайней правой области, обозначенной на Рис.3.3. цифрой 3, и реализующей логическую функцию ._AND_B: HRNG - свойство описывает регион, позволяющий производить заливку центральной области, обозначенной на Рис.3.3. цифрой 2, и реализующей логическую функцию .

Открытые методы.

В целом основные свойства, наследуемые от базового класса, используются для тех же целей, что и в других примитивах с некоторыми отличиями.() - метод позволяет рисовать множества и реализовать заливку, используя следующие этапы: вычисление регионов окружностей, составляющих экземпляр класса Два множества; рисование прямоугольника выделения для подсветки выделенного объекта; выбор цвета заливки каждой из областей; рисование областей с заливкой; рисование окружностей, составляющих множества.() - позволяет производить создание областей для заливки. При вычислении области заливки используются значения, получаемые в результате применения функции getRegion класса Окружность применяя данный метод к свойствам FCircle и SCircle класса Два множества. Вычисление заливаемой области производится стандартной функцией WinAPI CombineRegion. Для вычисления логической функции используются различные параметры: порядок задания исходных регионов, результирующий регион и выполняемая логическая операция. Для выполнения операции вычитания одного множества из другого исполь

Copyright © 2008-2014 geum.ru   рубрикатор по предметам  рубрикатор по типам работ  пользовательское соглашение