Лабораторная работа: ЛР2- 22Р (граф Ашкинузе) Отчет + код вариант 22
Описание
Лабораторная №2 по ПГП. Отчет и код программы на С++.
Текст задания:Разработать программу раскраски граней многоугольного графа плоской прямолинейной укладки любого заданного правильного или полуправильного многогранника. Требуемая фигура должна формироваться по массивам его вершин, граней и ребер, которые определяют их взаимное расположение в графическом окне программы. При этом положение каждой вершины должно фиксироваться ее координатами в условных единицах, пропорциональных размеру графического окна программы, по заданной схеме. Для каждой грани должны быть указаны список номеров и число их вершин. Все ребра должны быть заданы списком инциденций из пар номеров своих вершин (или перечислены в минимальном наборе цепей из них, которые специфицированы списками номеров смежных вершин). Закодированное таким образом изображение должно симметрично располагаться в графическом окне и пропорционально реконфигурироваться при любых изменениях его размера. При любых реконфигурациях размер графического окна программы должен быть ограничен сверху габаритами экрана дисплея, а его минимальный размен должен быть установлен из расчета визуальной различимости граней заданной фигуры. В начале выполнения программы графическое окно должно быть занимать четверть площади экрана в его центре, а все грани изображения графа в нем должны иметь одинаковый цвет фона. Изменение цвета каждой грани должно осуществляться по щелчку любой кнопки мыши, когда ее курсор находится внутри грани. Для раскраски граней в программе должна быть распределена палитра из n=4 различных цветов (плюс еще один цвет для изображения вершин и ребер). Чтобы установить необходимый цвет для любой грани в программе должен быть реализован циклический перебор цветов палитры с перекраской указанной грани последовательно в каждый из них по щелчку любой кнопки мыши. Кроме того, следует предусмотреть перезагрузку изображения графа с перекраской в одинаковый фоновый цвет всех граней по нажатию клавиши ESC на клавиатуре, а также принудительную перерисовку графического окна по нажатию комбинации клавиш ALT-ESC с сохранением раскраски граней. Завершение программы должно происходить по нажатию клавиши F10 клавиатуре. При разработке программы должна быть реализована обработка соответствующих событий и изображений в ее графическом окне с многоугольными регионами для граней графа. Для этого следует применить библиотечные функции базового программного интерфейса X Window System. При выполнении программы требуется построить правильную раскраску граней заданной фигуры многоугольного графа минимальным числом цветов, когда все смежные грани имеют различные цвета.
| |
| |