ЛР1. Разработка класса - холста для рисования

Задание

Разработать класс TXCanvas для рисования различных графических объектов, где X - номер студенческого билета студента. Каждая точка холста описывается цветом в виде триплета RGB. Рисование обеспечивается сущностью "карандаш", которая описывается цветом RGB и текущим местоположением (позицией). Запрещается использовать любые существующие средства поддержки графики, за исключением последнего задания. Проверить работоспособность всех методов класса.

Декларируемые возможности TXCanvas:

  1. Методы загрузки и сохранения холста в формате PPM P3 (см. смежный предмет)
  2. Методы для изменения и получения размеров холста
  3. Методы для изменения и получения текущего цвета
  4. Методы для изменения и получения текущей позиции
  5. (30) Метод рисования точки в текущей позиции текущим цветом
  6. Метод рисования прямоугольника заданного размера в текущей позиции текущим цветом
  7. Метод рисования закрашенного прямоугольника заданного размера в текущей позиции текущим цветом
  8. Метод рисования отрезка текущим цветом в заданную позицию из текущей с перемещением карандаша в конечную позицию
  9. Метод закраски ограниченной области в текущей позиции текущим цветом (см. смежный предмет)
  10. (50+20) Метод накладывания стороннего холста на текущий холст в текущую позицию, считая прозрачным текущим цвет
  11. (+20 первому, +10 второму, +5 остальным) Методы загрузки и сохранения холста в форматах JPG,PNG,PCX и других, поддерживаемых пакетом fcl-image.
Задание состоит из двух блоков и допзадачи. 1-5 - первый блок, 30 баллов. 6-10 - второй блок, от 50 до 70 баллов в зависимости от своевременности сдачи. 11 - необязательная допзадача с дифференцированным начислением баллов.