46969 (608008), страница 2

Файл №608008 46969 (Векторный графический редактор) 2 страница46969 (608008) страница 22016-07-30СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)

Х

(X0;Y0) – текущая позиция

2)

(X0;Y0) – текущая позиция



Y

(X1;Y1) – аргументы функций LineTo()

Рисование эллипсов

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

X


1

(ex1;ey1) – текущая позиция

)


Y


(ex2;ey2) – аргументы функции LineTo()


X


2 )

Ry

(Xc;Yc)


Rx



Y


Rx=(abs(ex1-ex2))/2;

Ry=(abs(ey1-ey2))/2;

Xc=(ex1+ex2)/2;

Yc=(ey1+ey2)/2;

Алгоритм преобразования пространства

Для преобразования пространства преобразователем типа «зеркало» необходимо начать с создания линии «зеркала». Она рисуется как и обычный примитив line. Далее для зеркального отображения объектов пространства относительно этой линии используется следующий алгоритм состоящий из нескольких шагов:

  1. Н

    O

    аходим величину радиус вектора одной из точек прямой, относительно которой осуществляется преобразование

X

(Xb;Yb)

OB


B



(Xa;Ya)

A

P


Y


  1. Смещаем преобразуемую точку P пространства на вектор –OB, получаем точку P1

X

(Xb;Yb)

OB

О

B


Р1


(Xa;Ya)

A

P


Y


  1. Находим угол α между AB и осью ОХ

О

X

(Xb;Yb)

OB

B

α


Р1


(Xa;Ya)

A

P


Y


  1. Поворачиваем Р вокруг Р1 на угол α, получаем точку Р2

О

X

Р2

B

α

α


Р1


(Xa;Ya)

A

P


Y


  1. Смещаем Р2 на вектор ОВ и получаем точку Р!. Преобразование завершено

О

X

Р2

α

α

Р!


Р1


(Xa;Ya)

A

P


Y


4.3 Реализация алгоритма преобразования пространства

Реализацию алгоритма преобразования пространства осуществляет метод Mirror (Листинг 3.1.)

Листинг 3.1

void Mirror()

{

ell*zu2_e;

a=(Y1-Y2)/sqrt((Y1-Y2)*(Y1-Y2)+(X1-X2)*(X1-X2));//sin

b=(X1-X2)/sqrt((Y1-Y2)*(Y1-Y2)+(X1-X2)*(X1-X2));//cos

if (x_e!=0)

{

zu2_e=x_e;

while(zu2_e!=0)

{

for(int j=0; j<2048;j++)

{

mx1=zu2_e->x[j];

my1=zu2_e->y[j];

mx1+=-X1;

my1+=-Y1;

xx=mx1*b+my1*a;

yy=-mx1*a+my1*b;

yy=-yy;

mx1=xx*b-yy*a;

my1=xx*a+yy*b;

mx1+=X1;

my1+=Y1;

zu2_e->x[j]=mx1;

zu2_e->y[j]=my1;

}

zu2_e->Draw();

zu2_e=zu2_e->next;

}

}

}

4.4 Основные функции работы с графикой

      1. FormMouseDown - производится сохранение координат курсора;

      2. FormMouseUp - производится конечная прорисовка изображаемого элемента;

      3. FormMouseMove – происходит постоянная перерисовка изображаемого элемента;

      4. LineDRW - происходит оповещение программы о том, что будет происходить прорисовка линии.

      5. RectDRW - происходит оповещение программы о том, что будет происходить прорисовка прямоугольника.

      6. TreDRW1 - происходит оповещение программы о том, что будет происходить прорисовка первой грани треугольника.

      7. TreDRW2 - происходит оповещение программы о том, что будет происходить прорисовка двух оставшихся граней треугольника.

      8. EllDRW - происходит оповещение программы о том, что будет происходить прорисовка эллипса.

  1. 5. Технологическая часть

5.1 Назначение программы

Данный программный продукт предназначен для работы с изображением и поэтому должен содержать и выполнять следующие действия:

  • Работа с графическими файлами

    1. Создание нового графического файла

  • Рисование основных геометрических примитивов

        1. Рисование отрезков прямых

  1. Рисование прямоугольников

  2. Рисование треугольников

  3. Рисование эллипсов

  • Дополнительные возможности редактирования

    1. Зеркальное преобразование пространства с нарисованными в нем эллипсами

5.2 Условия выполнения программы

5.2.1 Требования к аппаратной и программной средам

Условия выполнения программы, полученной в результате реализации данного проекта, должны отвечать следующим требованиям:

  1. программа должна выполняться во всех операционных системах Windows XP;

  2. программа может выполняться на IBM-PC совместимом компьютере с процессором не ниже 80486;

  3. для нормального функционирования программы необходим минимальный размер оперативной памяти 16 Мб;

  4. для программы необходимо наличие 3 Мб свободного места на жестком диске;

  5. для работы с программой необходимо наличие устройства ввода (клавиатура, манипулятор «мышь»);

  6. для отображения результатов работы программы необходимо наличие устройства вывода (монитор);

5.3 Руководство пользователя

5.3.1 Выполнение программы

Для обращения к программе необходимо запустить файл “Project1.exe” с гибкого или жёсткого магнитного диска.

Для рисования отрезков прямых, необходимо активизировать radiobutton «line». Далее необходимо переместить указатель мыши на главную форму. Нажмите левой кнопкой мыши и, не отпуская её, переместите курсор мыши в другую точку окна приложения. Отпустите левую кнопку мыши. На экране отобразится линия (рис.4.1.).

Рисунок 4.1. Отображение линии

Для рисования прямоугольников, необходимо активизировать radiobutton «rectangle». Далее необходимо переместить указатель мыши на главную форму. Нажмите левой кнопкой мыши и, не отпуская её, переместите курсор мыши в другую точку окна приложения. Отпустите левую кнопку мыши. На экране отобразится прямоугольник (рис.4.2.).

Рисунок 4.2. Отображение прямоугольника

Для рисования треугольников, необходимо активизировать radiobutton «triangle». Далее необходимо переместить указатель мыши на главную форму. Щелкните левой кнопкой мыши, переместите курсор мыши в другую точку окна приложения, щелкните снова. На экране отобразится первая грань треугольника. Далее перенесите курсор в точку, где должна находиться третья вершина треугольника, щелкните там, прорисуются оставшиеся две грани. На экране отобразится треугольник (рис.4.3.).

Рисунок 4.3. Отображение треугольника

Для рисования эллипсов, необходимо активизировать radiobutton «ellipse». Далее необходимо переместить указатель мыши на главную форму. Нажмите левой кнопкой мыши и, не отпуская её, переместите курсор мыши в другую точку окна приложения. Отпустите левую кнопку мыши. На экране отобразится эллипс (рис.4.4.).

Рисунок 4.4. Отображение эллипса

Для преобразования пространства необходимо активизировать radiobutton «mirror». Далее необходимо переместить указатель мыши на главную форму. Нажмите левой кнопкой мыши и, не отпуская её, переместите курсор мыши в другую точку окна приложения. Отпустите левую кнопку мыши. На экране отобразится линия, относительно которой будет происходить преобразование(рис.4.5.), и произойдет само преобразование (все эллипсы зеркально отобразятся относительно линии) (рис.4.6.).

Рисунок 4.5. Отображение линии зеркала

Рисунок 4.6. Преобразование пространства

Завершение программы происходит после щелчка левой кнопки мыши по кнопке с крестиком в верхнем правом углу окна программы.


Заключение

Таким образом, цели, поставленные в начале работы, были достигнуты. Была освоена среда программирования C++ Builder, в ходе выполнения требований к поставленной задаче были использованы алгоритмы преобразования пространства а также приоберетены новые навыки программирования на С++. Удалось создать программный продукт, отвечающий пунктам изначально заданных требований. Для создания и небольшой коррекции изображения удобно иметь под рукой быстрый и компактный векторный графический редактор, который позволяет внести необходимые изменения и при этом не потребует больших затрат вашего времени и места на жестком диске.

Такой векторный графический редактор практически не требует места на диске, работает быстро и надежно, не требует больших усилий в его освоении, позволяет создавать и редактировать изображения, что обеспечивает его востребованность у различных пользователей.

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

  1. Литература

  1. Майкл Дж. Янг, Visual C++, 1999 г.

  2. Архангельский А. Я., Программирование в С++ Builder 6, изд. Бином, 2003 г.

  3. Архангельский А. Я., С++ Builder 6 справочное пособие (книги 1,2), изд. Бином, 2002 г.

  4. Культин Н., Самоучитель С++ Builder, БХВ-Петербург, 2004 г.

Характеристики

Тип файла
Документ
Размер
5,79 Mb
Тип материала
Учебное заведение
Неизвестно

Список файлов курсовой работы

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7028
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее