Сложность 5

Задача «2D сцена (расширенная)»

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

Входные данные:

Текстовый файл с описанием 2D сцены, которую необходимо создать. Пример:

10 10 1000 1000
1 create point 1 2
2 create rect 1 2 3 4
3 create hline 10 10 20
5 create vline 30 30 40
1 delete
2 move 10 10

1) Первая цифра - это идентификатор объекта над которым производится действие (id объекта в системе)

2) Второе слово - это идентификатор действия, которое необходимо совершить над данным объектом. Всего 3 команды - create (создать объект), delete (удалить объект), move (переместить объект)

Логика работы: Необходимо последовательно выполнить команды, описанные в полученном на вход файле, получить конечную сцену и отрисовать ее в BMP файле.

Расшифровка команд в примере входного файла:

  • Первая строчка файла вида x1 y1 x2 y2 - прямоугольник пользовательских координат (в каком окне возможна отрисовка)
  • 1 create point x y - создать точку с идентификатором объекта 1, в координатах (x, y)
  • 2 create rect x1 y1 x2 y2 - создать прямоугольник с идентификатором '2', заданный точками (x1, y1) и (x2, y2)
  • 3 create hline x1 x2 y - создать горизонтальную линию с идентификатором 3, заданную точками (x1, y) и (x2, y)
  • 5 create vline y1 y2 x - создать вертикальную линию, с идентификатором 5, заданную точками (x, y1) и (x, y2)
  • 1 delete - удалить объект с идентификатором 1
  • 2 move dx dy - переместить объект с идентификатором 2 на dx по x и на dy по y

Вывод:

  • Отрисовка полученной в итоге сцены в BMP файл