ЛР1.
Структуры.

Задания

  1. (40) Построение "мозаики".

    Дано:
    в первой строке два натуральных значения через пробел - размер графического поля. Во второй и последующих строках по семь натуральных значений - канонизированные координаты прямоугольника и его цвет в формате RGB (RGB - это три байтовых числовых значения, представляющих собой интенсивности красного (R), зеленого (G) и синего (B)). Ввод завершает строка, состоящая из 7 нулей.

    Найти:
    сформировать "мозаику" - графическое изображение на белом фоне, состоящее из разноцветных прямоугольников в однопискельных черных рамках. Для этого исходные прямоугольники поледовательно, в порядке поступления, накладываются на изображение, начиная с прямоугольника - графического поля.

    Требования и рекомендации:
    Для построения изображения следует на основе исходных данных сформировать массив rects, который будет содержать структуры типа rect_t(координаты левого верхнего и правого нижнего углов), исходных прямоугольников. Первым прямоугольником считать графическое поле. Для хранения изображения следует использовать матрицу image, элементы которой представляют собой структуру RGB для хранения цвета каждой точки. Обработка сформированного массива rects должна обеспечить заполнение массива image.

    Результат:
    вывод полученного изображения из массива image на стандартный поток вывода в формате ppm P3.

  2. (40+20) Построение "ковра Серпинского".

    Дано:
    в первой строке одно натуральное значение - исходный размер стороны "ковра Серпинского", во второй - количество итераций для получения результирующего фрактала, в третьей - цвет исходного квадрата в формате RGB, в четвертой - цвет изымаемых квадратов в формате RGB.

    Найти:
    сформировать "ковер Серпинского"

    Требования и рекомендации:
    Для решения задачи следует сформировать двумерный массив squares из необходимого количества структур типа square_t (координаты левого верхнего угла и длина стороны), описывающих квадрат, который будет изыматься из центров исходных квадратов на каждой итерации. Рекомендуется использовать рекурсивное решение. Для хранения изображения следует использовать матрицу image, элементы которой представляют собой структуру RGB для хранения цвета каждой точки. Обработка сформированного массива squares должна обеспечить заполнение массива image.

    Результат:
    вывод полученного изображения из массива image на стандартный поток вывода в формате ppm P3.