タスクは、800 列と 600 行の画像上にロシア国旗の画像を作成することです。したがって、旗は 3 つの等しいセクション (上が白、中央が青、下が赤) に分割されます。
これが私のコードです:
#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);
}
しかし、私のプログラムによって生成された画像を見ると、青と赤のバーの上部が完全に水平ではないことに気付きました (青と赤のバーの上部をより高くする行の一部のように見えます)。前のピクセル) なぜこれを取得しているのかわかりません。私はすでに Gimp でインストラクターの ppm ファイルを実行しました (これは、ppm ファイルを表示するために使用するものです)。行は完全に水平になっているはずです。何か案は?
(ppm ファイルを添付する方法がわかりませんが、次のようになります: http://users.csc.calpoly.edu/~dekhtyar/101-Fall2013/labs/lab7.html ) (最初のフラグ)