Графический 2D векторный редактор с описанием классов примитивов на С++ Visual Studio

Существует множество вариантов графических редакторов

  1. О векторных графических редакторах 2D и векторной графике
  2. Пример 2D графического редактора с палитрой цветов
  3. Пример простого 2D графического редактора
  4. Графические методы программы и векторные изображения

Данный исходный код очень хорошо демонстрирует преимущества Объектно-Ориентированного Программирования (ООП). В нем наглядно показаны все три "кита" ООП:

  • инкапсуляция
  • наследование
  • полиморфизм


О векторных графических редакторах 2D и векторной графике

Векторная графика способ представления изображения, как суперпозиции примитивов.

Она использует математические алгоритмы для масштабирования, смещения и поворотов примитивных объектов (фигур), таких как точка, эллипс, линия, многоугольник и т.п.

Растр (т.е. графическая матрица или матрица пикселей) каждый раз очищается и пересчитывается при любых изменениях в изображении. Это основное отличие от растровой графики, где растр хранится в памяти

Достоинства и недостатки векторной графики не составляет труда найти (Рунет в помощь)



Пример 2D графического редактора с палитрой цветов

Программа позволяет создавать любые комбинации из закрашенных или не закрашенных геометрических фигур. При этом ведется список помещенных на холст фигур. Порядок (очередность) фигур в списке можно изменять. Ненужные фигуры могут удаляться из списка. Результат работы может сохраняться в типизированный файл (для визуального восприятия пользователя используются текстовый, а не двоичный тип записей).

2D графический редактор с палитрой цветов
Рис.1        Пример 2D графического редактора с палитрой цветов

Если щелкните правой кнопкой мышки по цвету в палитре, то выберется основной цвет...
А если - левой, то измените цвет фона...

скачать exe-файл для тестирования







Пример простого 2D графического редактора

Один из моих заказчиков, посмотрев за первый вариант, сказал: "Нет, это очень сложно. Мне надо, чтобы все было максимально просто!"

Мы с ним сошлись на следующем Техническом задании:

Реализовать графический редактор хранящий список геометрических фигур (записей о геометрических фигурах).

Предусмотреть возможность отображения геометрических фигур на экране. Реализовать поиск по содержимому. Реализовать расширяющий (extended) метод, выбирающий из списка фигуры, площадь которых больше 100 px2.

Для этого реализовать следующие классы.

  • Класс «Точка» содержит поля «координата по оси X», «координата по оси Y».
  • Абстрактный класс (интерфейс) «Геометрическая фигура» может содержать список точек, площадь.
  • Класс «Треугольник» наследуется от класса «Геометрическая фигура». Перегружается метод вычисления площади, отрисовка.
  • Класс «Прямоугольник» наследуется от класса «Геометрическая фигура». Перегружается метод вычисления площади, отрисовка.
  • Класс «Окружность» наследуется от класса «Геометрическая фигура». Перегружается метод вычисления площади, отрисовка.

Простой 2D графический редактор
Рис.2        Пример простого 2D графического редактора

Вот такой Графический редактор его удовлетворил... Исходный код, конечно, значительно уменьшился... Сдал он работу с первого раза (про оценку промолчу)...

скачать exe-файл для тестирования







Графические методы программы и векторные изображения

Векторные изображения задаются описаниями геометрических объектов.

Преобразование векторных правил в растр происходит быстро (обратное преобразование - сложно).

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

Наиболее часто применяемые в графических работах методы просты

  • Смещение фигуры на заданный вектор
  • Поворот фигуры на заданный угол вокруг заданной точки
  • Масштабирование общее или индивидуальное по каждой из осей

А если загляните в Photoshop, то там глаза разбегаются от всевозможных эффектов (методов), которые применяются в дизайне векторных изображений.

Другие примеры на тему «Математические методы компьютерной 2D 3D графики»

Другие примеры на языках «C»,«C++»,«C#»







Поделиться в соц сетях:




Если на этой странице не нашлось того, что Вы так искали...

         Не расстраивайтесь, не все потеряно... Смело щелкайте...
исходный код на заказ. orenstudent.ru Автоматизация документов MS Office. orenstudent.ru Помогите найти и устранить ошибку в исходном коде программы. orenstudent.ru Skype-консультирование по программированию
Скайп-консультации

Акция !!!
исходный код комментарии цена минимальная


Не попадайтесь на удочку мошенников-кидал...
Сайт помощи студентам по программированию и информатике

Program code