2024/2025 - Компютърна графика и ГПИ (Софтуерно инженерство)

Регистрирай се за курса

Внимание!!!

Всеки студент (включително студентите от предишни години, които ще се явяват на изпит през предстоящата сесия) трябва да се регистрира в Google Classroom с университетската си поща (т.е. с адрес завършващ на @uni-plovdiv.bg) и да се присъедини към курс с код: sjz4dik

Информация за лекциите, упражненията и други текущи ще може да намерите след присъединяаването си в Classroom.

Ако се наложи онлайн връзка ще ползваме Meet бутона "Присъединяване" горе в ляво в класрума на дисциплината. (за извънредни онлайн лекции, упражнения, изпити, консултации и др.)

Анотация

Целта на тази учебна дисциплина е придобиване на теоретични знания и практически умения в областта на компютърната графика – диалоговите графични системи, геометрично моделиране, алгоритмите за визуализация, създаване на ГПИ и др. Практическа задача за студентите е изграждане на проект със средна сложност – диалогова система за графично моделиране с графичен потребителски интерфейс. Придобитите знания и умения са полезни както при разработката на подобни системи, така и при използването на такива в практиката. КОНСПЕКТ

Лекции и упражнения

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

Изисквания

Всеки студент трябва да разработи проект по Компютърна графика и ГПИ. Проекта трябва да представлява диалогова система за графично моделиране (графичен редактор) с примитиви от векторен тип. Диалоговата система за графично (2D) моделиране трябра да бъде със следните функционални възможности:

  1. Изграждане на изображение от различни графични примитиви (векторни) – например точки, отсечки, многоъгълници, елипси и др.; (2.5 точки)
  2. Визуализация на примитивите на базата на техните визуализационни характеристики като цвят, дебелина на линия, прозрачност и др.; (2.5 точки)
  3. Указване на графичен примитив от изображението; (2.5 точки)
  4. Манипулиране с графични примитиви – например, преместване, завъртане, мащабиране и др.; (2.5 точки)
  5. Създаване на структура на изображението чрез йерархично групиране, т.е. създаване на групи от примитиви и/или други групи; (5 точки)
  6. Манипулиране с групи – например, преместване, завъртане, мащабиране, различни видове разгрупиране и др.; (5 точки)
  7. Различни начини за определяне на характеристики на обектите от изображението – например задаване на цвят чрез името му, именуване на обектите от изображението и др.; (2.5 точки)
  8. Различни начини на задаване на операциите от потребителя – например чрез меню, бутони, мишка и др.; (2.5 точки)
  9. Поддръжка на богат набор от операции за редактиране на изображение като добавяне на елементи, отстраняване на елементи, копиране, актуализация на характеристики, йерархично групиране и разгрупиране и др.; (2.5 точки)
  10. Различни възможности за избор на обект(и) от изображението; (2.5 точки)
  11. Използване на многопрозоречна техника за поддръжка на няколко изгледа на едно и също изображение, както и за работа с няколко изображения едновременно; (бонус 5 точки)
  12. Различни възможности за четене/запис на модела на изображението от/на външен носител. (10 точки)

Вие можете да:

  • използвате произволен език за програмиране (за предпочитане обектно ориентиран);
  • използвате произволна среда за разработка;
  • използвате произволна операционната система;
  • работите самостоятелно или в групи от двама човека (на изпита всеки решава самостоятелно задачата);
  • използвате произволна графична библиотека; 
  • използвате стартовия проект (даден е в помощните материали), като основа за създаване на собствен проект;
  • обсъждате проблема, изискванията и материалите с всеки;

Вие НЕ можете да:

  • използвате проекти (или части от тях) създадени от други лица за целите на този курс, включително създадени в предишни учебни години;
  • използвате проекти (или части от тях) създадени от други лица за сходни цели;
  • използвате код, който не сте реализирали собственоръчно (с изключение на код от стартовия проект);

Критерии за оценяване

Оценката на проект се формира по формулата: (20 + Брой точки)/10. Оценката се получава на практическата част от изпита при решена задача и при представен/защитен проект. Задачата се състои в промяна на разработения проект в определена насока (например добавяне на нов тип примитив и др.). Всеки който получи 3.00 или повече на практическата част има право да се яви на теория. Теоретичния изпит е под формата на тест с 20 затворени въпроса (всяки верен отговор носи 2 точки, а всеки грешен 0-ла). Оценката от теория се формира по същата формула, както тази от практическата част. Двете оценки практическа и от теория формират крайната оценка по предмета. Ако една от оценките е слаб, то студента трябва да се явяви на поправка (следваща дата).

Работа през семестъра и предаване на проекта

Всеки судент е длъжен да работи по проекта си през семестъра. Работата задължително става с използването на GitLab сървъра на ФМИ (повече информация за достъпа и начина на използването на тази система за контрол на версиите вижте ТУК).

Задължително е в хранилището да бъдат качени всички съществени промени от началото на развитие на проекта до окончателното му завършване. Всеки решава дали да изпраща промените (commit) си в сървъра по-често или по-рядко, но задължително по всеки проект трябва да има поне 4 commit-а в течение на семестъра. Наличието или липсата на такива регилярни версии, както и конкретното съдържание на кода на проекта може да окаже влияние върху общия брой на точките, които ще получите. Работата по проекта може да продължи до изпита (както между изпита и евентуалната поправка) и съответно качва промени в хранилището да продължи.

Задължително е проекта да се намира в хранилището, като той трябва да е във вид готов за сваляне и компилация. Проекти не отговарящи на изискванията няма да бъдат проверявани и оценявани.

На изпита всеки ще използва последното състояние на работното копие, като след решение на задачата трябва да я качи като нова версия в хранилището.

Проектите подлежат и ще бъдат проверявани автоматично и ръчно. Автоматичната проверка включва (но не се ограничава само до) използване на системи за автоматизирана проверка за плагиатство (т.е. преписване от ваши колеги и/или от чужди проекти в Интернет). Ръчната проверка представлява преглед и експерементиране с проекта от страна на преподавател. При установяване на плагиатство или съмнение за такова точките на съответните студенти ще бъдат драстично намалени (пропорционално на процента на "взаимстваните" части от код), в допълнение на това ще бъде публикуван списък с провинилите се студенти, както и ще се вземат всички други мерки в съответствие с Регламента за реакция при нечестни прояви.

Важно за изпита

На изпита всеки студент се явява, ако е изпълнил всички изисквания по време на семестъра в срок (предал е проекти и др. задължителни за съответната дисциплина курсови работи, съгласно изискванията). Всеки задължително трябва да носи студентската си книжка надлежно попълнена и заверена от учебен отдел за съответния семестър. Студенти не отговарящи на условията няма да бъдат допускани до съответната изпитна дата.

Литература

  • Д. Димов, "Компютърна графика", Пловдивско унуверситетско издателство, 1999;
  • Д. Димов, А. Пенев, "Ръководство за упражнения по компютърна графика", Пловдивско унуверситетско издателство, 2002;
  • A. P. Godse, Computer Graphics, Technical Publications, 2009, 564 pages, ISBN 8-184-31737-9;
  • Peter Shirley, Steve Marschner, Fundamentals of Computer Graphics, A K Peters, 2009, 752 pages, ISBN 1-568-81469-0;
  • John Vince, Mathematics for Computer Graphics (3rd Edition), Springer, 2010, 293 pages, ISBN 1-849-96022-4;
  • Sumanta Guha, Computer Graphics Through OpenGL: From Theory to Experiments, CRC Press, 2010, 858 pages, ISBN 1-439-84620-0;
  • и други.

Помощни материали