Задача состоит в том, чтобы создать изображение российского флага на изображении с 800 столбцами и 600 строками. Итак, флаг разделен на три равные части (белая сверху, синяя посередине и красная снизу).
Вот мой код:
#include <stdio.h>
int main() {
printf("P6\n");
printf("%d %d\n", 800, 600);
printf("255\n");
int width, heightWhite, heightBlue, heightRed, i, j;
unsigned char Rcolor, Bcolor, Gcolor;
width = 800;
heightWhite = 200;
heightBlue = 400;
heightRed = 600;
for (j = 0; j <= heightWhite; j++) {
for (i = 0; i <= width; i++) {
Rcolor = 255;
Bcolor = 255;
Gcolor = 255;
printf("%c%c%c", Rcolor, Gcolor, Bcolor);
}
}
for (j = 201; j <= heightBlue; j++) {
for (i = 0; i <= width; i++) {
Rcolor = 0;
Bcolor = 255;
Gcolor = 0;
printf("%c%c%c", Rcolor, Gcolor, Bcolor);
}
}
for (j = 401; j <= heightRed; j++) {
for (i = 0; i <= width; i++) {
Rcolor = 255;
Bcolor = 0;
Gcolor = 0;
printf("%c%c%c", Rcolor, Gcolor, Bcolor);
}
}
return (0);
}
Но когда я посмотрел на изображение, сгенерированное моей программой, я заметил, что верхние части синей и красной полос не полностью горизонтальны (похоже, что это часть строки, из-за которой верхние части синей и красной полос находятся выше, чем предыдущие пиксели) Я не могу понять, почему я получаю это. Я уже запускал ppm-файл моего инструктора в Gimp (это то, что я использую для просмотра ppm-файлов), и линии должны быть идеально ровными. Любые идеи?
(Я не знаю, как прикрепить файл ppm, но вот как он должен выглядеть: http://users.csc.calpoly.edu/~dekhtyar/101-Fall2013/labs/lab7.html) (это самый первый флаг)