戻る
グラフィックスプログラマになる 08 (2024/06/17)
以前のコードを変数を使って書き直す
さて、変数について分かってきました。
03回で書いたコードを、変数を使って書き直してみましょう。
void OnPaint(HDC hdc)
{
COLORREF color = RGB(0, 0, 0);
SetPixel(hdc, 20, 10, color);
SetPixel(hdc, 21, 10, color);
SetPixel(hdc, 22, 10, color);
SetPixel(hdc, 23, 10, color);
SetPixel(hdc, 20, 11, color);
SetPixel(hdc, 21, 11, color);
SetPixel(hdc, 22, 11, color);
SetPixel(hdc, 23, 11, color);
SetPixel(hdc, 20, 12, color);
SetPixel(hdc, 21, 12, color);
SetPixel(hdc, 22, 12, color);
SetPixel(hdc, 23, 12, color);
SetPixel(hdc, 20, 13, color);
SetPixel(hdc, 21, 13, color);
SetPixel(hdc, 22, 13, color);
SetPixel(hdc, 23, 13, color);
}
これでしたね。この書き方だと、別の座標に描画したい際に、16行も書き換えなければいけないですね。なので、こうしたらどうでしょうか?
void OnPaint(HDC hdc)
{
COLORREF color = RGB(0, 0, 0);
int x = 20;
int y = 10;
SetPixel(hdc, x, y, color);
SetPixel(hdc, x + 1, y, color);
SetPixel(hdc, x + 2, y, color);
SetPixel(hdc, x + 3, y, color);
SetPixel(hdc, x, y + 1, color);
SetPixel(hdc, x + 1, y + 1, color);
SetPixel(hdc, x + 2, y + 1, color);
SetPixel(hdc, x + 3, y + 1, color);
SetPixel(hdc, x, y + 2, color);
SetPixel(hdc, x + 1, y + 2, color);
SetPixel(hdc, x + 2, y + 2, color);
SetPixel(hdc, x + 3, y + 2, color);
SetPixel(hdc, x, y + 3, color);
SetPixel(hdc, x + 1, y + 3, color);
SetPixel(hdc, x + 2, y + 3, color);
SetPixel(hdc, x + 3, y + 3, color);
}
これなら、2行書き換えるだけで、別の位置に点を描画することができます。
void OnPaint(HDC hdc)
{
COLORREF color = RGB(0, 0, 0);
int x = 120;
int y = 110;
SetPixel(hdc, x, y, color);
SetPixel(hdc, x + 1, y, color);
SetPixel(hdc, x + 2, y, color);
SetPixel(hdc, x + 3, y, color);
SetPixel(hdc, x, y + 1, color);
SetPixel(hdc, x + 1, y + 1, color);
SetPixel(hdc, x + 2, y + 1, color);
SetPixel(hdc, x + 3, y + 1, color);
SetPixel(hdc, x, y + 2, color);
SetPixel(hdc, x + 1, y + 2, color);
SetPixel(hdc, x + 2, y + 2, color);
SetPixel(hdc, x + 3, y + 2, color);
SetPixel(hdc, x, y + 3, color);
SetPixel(hdc, x + 1, y + 3, color);
SetPixel(hdc, x + 2, y + 3, color);
SetPixel(hdc, x + 3, y + 3, color);
}
(次回へ続く)