2009a/A5/課題1左へ戻る

task main ()
{
    SetPower(OUT_B,7); //Bのパワーを上げる
                            //★輪郭
    pensage(); //描画 (1)
    OnFwd(OUT_A+OUT_C); //前進
    Wait(105);

    Off(OUT_C); //弧を描くため左に曲がる
    Wait(190);
    penage();
    Off(OUT_A);
                      //位置補正
    OnRev(OUT_A+OUT_C); //後退
    Wait(50);
    Off(OUT_C); //回転
    Wait(130);
    Off(OUT_A);


    OnFwd(OUT_A+OUT_C); //前進
    Wait(100);
    Off(OUT_A+OUT_C);

    OnFwd(OUT_A); //回転
    OnRev(OUT_C);
    Wait(80);
    Off(OUT_A+OUT_C);

    OnRev(OUT_A+OUT_C); //後退
    Wait(30);
    Off(OUT_A+OUT_C);

    pensage(); //描画 (2)
    OnFwd(OUT_A+OUT_C); //前進
    Wait(120);
    Off(OUT_A+OUT_C);
    OnFwd(OUT_A); //旋回
    Wait(190);
    penage();
    Off(OUT_A);

                            //★髪の毛
    OnRev(OUT_A+OUT_C); //位置修正―後退
    Wait(30);
    Off(OUT_A+OUT_C);
    OnFwd(OUT_A);       //回転
    OnRev(OUT_C);
    Wait(90);
    Off(OUT_A+OUT_C);
    OnRev(OUT_A+OUT_C);
    Wait(150);
    Off(OUT_A+OUT_C);

    pensage();
    OnFwd(OUT_A+OUT_C); //描画 (3)
    Wait(130);
    penage();
    Off(OUT_A+OUT_C);

                            //★目
    OnRev(OUT_A); //位置修正
    OnFwd(OUT_C)
    Wait(90);
    Off(OUT_A+OUT_C);

    OnFwd(OUT_A+OUT_C);
    Wait(30);
    Off(OUT_A+OUT_C);
    OnRev(OUT_A);
    OnFwd(OUT_C);
    Wait(60);
    Off(OUT_A+OUT_C);
    OnRev(OUT_A+OUT_C);
    Wait(30);
    Off(OUT_A+OUT_C);

    repeat (2) {
    pensage();
    OnFwd(OUT_A+OUT_C); //描画 (4)
    Wait(30);
    Off(OUT_A+OUT_C);
    penage();
    OnFwd(OUT_A+OUT_C); //間を開ける
    Wait(20);
    Off(OUT_A+OUT_C);
              }

                            //★唇
    OnFwd(OUT_A+OUT_C); //位置修正
    Wait(100);
    Off(OUT_A+OUT_C);
    OnFwd(OUT_A); //転回
    OnRev(OUT_C);
    Wait(90);
    Off(OUT_A+OUT_C);
    OnFwd(OUT_A+OUT_C); //前進
    Wait(70);
    Off(OUT_A+OUT_C);
    OnFwd(OUT_A);
    OnRev(OUT_C);
    Wait(90);
    Off(OUT_A+OUT_C);
    OnRev(OUT_A+OUT_C);
    Wait(30);
    Off(OUT_A+OUT_C);

    pensage();
    OnFwd(OUT_A+OUT_C); //描画 (5)
    Wait(50);
    penage();
    Off(OUT_A+OUT_C);

                            //★面疔
    OnRev(OUT_A+OUT_C);
    Wait(50);
    Off(OUT_A+OUT_C);
    OnFwd(OUT_A);
    OnRev(OUT_C);
    Wait(90);
    Off(OUT_A+OUT_C);
    OnRev(OUT_A+OUT_C);
    Wait(70);
    Off(OUT_A+OUT_C);

    pensage();
    OnFwd(OUT_A+OUT_C); //描画 (6)
    Wait(40);
    penage();
    Off(OUT_A+OUT_C);

                           //Fine

}

sub pensage()
{
    OnFwd(OUT_B); //鉛筆を下ろす
    Wait(20);
    Off(OUT_B);
}

sub penage()
{
    OnRev(OUT_B); //鉛筆を上げる
    Wait(100);
    Off(OUT_B);
}
工程
丸1〜6は、ソース中の「描画 (1)〜(6)」に対応しています。
  • 多少プログラムが煩雑になっているように見えますが、機体を回転させる際にも左右両方のタイヤをそれぞれ逆に回転させる場合と、片方を止めてもう片方だけで回転させる場合とでは回転軸が違い、描画に影響を与えます。
    その都度調整を行うために、機体の移動についてはサブルーチンを設けず個々に設定致しました。
  • ペンの上げ下げについてはサブルーチンを使用し、纏めました。
  • 書き始めの部分にインクが滲むことに着目し、流し目を意識しました。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-05-22 (金) 16:49:19