ドラエモンを描きます



VC++ で図形描画の関数を使って、面白いキャラクタを描きます。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プロジェクトの設定

  1. 新規プロジェクト(Dora)を作成して下さい。
    プロジェクトのフォルダーに doraemon.cpp を格納して下さい。
    doraemon.cpp は WM_PAINT: に直接記述する「画像を描くコード」だけのファイルです。
    全ソースコードを利用するときは、DrawProc() 関数から必要なコードだけを抜き出して下さい。
  2. WM_PAINT: を表示して以下のように修正します。
    本来 #include はヘッダファイルなどを組み込むときに使用するのですが、今回のようにソースコードを 組み込むことも出来ます。
    但し、このような使い方は奨励されていないようで、初心者のプログラムでたまに見かける程度です。
        case WM_PAINT:
            hdc = BeginPaint(hWnd, &ps);
            // TODO: 描画コードをここに追加してください...
            #include "doraemon.cpp"
    
            EndPaint(hWnd, &ps);
            break;
        
  3. 下記は図形でドラエモンを描くソースコード(doraemon.cpp) の一部で、全部で65行程度の長さです。
    あなたも面白いキャラクターに挑戦してみて下さい。
        HPEN    hOldPen,hPenBlue,hPenBlack,hPenRed;
        HBRUSH  hOldBrush,hBrushBlue,hBrushWhite,hBrushBlack,hBrushRed;
    
        hPenBlue    = CreatePen(PS_SOLID, 3, RGB(0, 0, 255));
        hPenBlack   = CreatePen(PS_SOLID, 2, RGB(0, 0, 0));
        hPenRed     = CreatePen(PS_SOLID, 2, RGB(255, 0, 0));
        hBrushBlue  = CreateSolidBrush(RGB(0, 0, 255));
        hBrushWhite = CreateSolidBrush(RGB(255, 255, 255));
        hBrushBlack = CreateSolidBrush(RGB(0, 0, 0));
        hBrushRed   = CreateSolidBrush(RGB(255, 0, 0));
        // 顔1
        hOldPen= (HPEN)SelectObject(hdc, hPenBlue);
        hOldBrush= (HBRUSH)SelectObject(hdc, hBrushBlue);
        // ☆以下ソースコードが続きます
                 :
                 :
        
  4. [デバッグ][デバッグなしで開始]を選択して、ビルドに続いて実行を行います。
    コンパイルの進行状況とエラーがあれば、エラーメッセージが表示されます。
    ドラエモンの顔が表示されたら完成です。

【ヒント】

  1. ドラエモンの口を描く関数です。
    左上の座標(140,40)と右下の座標(360,300)に内接する楕円を描いて、直線(140,180 - 360,180)で切り取られた 弓形の図形を描画します。
    // 口
    Chord(hdc, 140, 40, 360, 300, 140, 180, 360, 180);
  2. 楕円の一部を切り取って円弧を描きます。
    Chord(hdc, 140, 40, 360, 300, 140, 150, 360, 260);
  3. 透明色のブラシを設定して、曲線を描きます。
    HBRUSH wBrush;
    wBrush= (HBRUSH)SelectObject(hdc,GetStockObject(NULL_BRUSH));
    Chord(hdc, 140, 40, 360, 300, 140, 150, 360, 260);
    SelectObject(hdc,wBrush);

【演習】

あなたも面白いキャラクターに挑戦してみて下さい。











超初心者の方のために全ソースコードを掲載します。 (^_^;)
全ソースコード

超初心者のプログラム入門(Win32API C++)