ハイパーピクトグラミング 例8 スイミングで花を描いてみよう

posted in: 開発者ブログ | 0

スイミングで花を描いてみました。

 

 

 

 

説明

 

<HTML部分>

<pa>

→ 描画エリア(キャンバス)を作るタグです。


<hp id=”pic1″ x=”0″ y=”-100″></hp>

→ 「pic1」というピクトグラムを配置
→ 初期位置は x=0, y=-100


 <hp id=”pic2″ x=”0″ y=”-100″></hp>

→ 「pic2」という2つ目のピクトグラムを配置
→ 位置はpic1と同じ


</pa>

→ 描画エリア終了


<JavaScript部分>

<script>

→ ここから動きのプログラム開始


■ 外側のループ(4回繰り返し)

for(let j = 0; j < 4; j++){

→ これからの動きを 4回繰り返す


● pic1の動き

pic1.FD(600, 1);

→ 前に600進む(速度1)


pic1.RTW(360, 1);

→ 右に360度回転(1秒かけて)
→ その場で1回転


● pic2の動き

pic2.FD(400, 1);

→ 前に400進む


pic2.RT(360, 1);

→ 右に360度回転(その場回転)

※ RTとRTWの違い

  • RT:向きだけ変える
  • RTW:動きとして回る(アニメーション)

■ 内側のループ(10回繰り返し)

for (let i = 0; i < 10; i++) {

→ 次の動きを10回繰り返す


pic2.W(0.05);

→ 0.05秒待つ


pic2.DIVE();

→ 潜る(線の下に入る)


pic2.W(0.05);

→ さらに少し待つ


pic2.FLOAT();

→ 浮上(線の上に戻る)


}

→ 内側ループ終了

👉 つまり
pic2がチカチカ上下(潜る・浮く)を繰り返す


■ 向きを少し変える

pic1.RTW(90,0.02);

→ pic1を右に90度(すごく速く回転)


pic2.RTW(90,0.02);

→ pic2も同じ


}

→ 外側ループ終了(これを4回繰り返した)

👉 全体として
四角形のような軌跡を描く動き


■ pic1の位置移動

pic1.RTW(180,0.02);

→ 180度回転


pic1.MW(0,400,0);

→ 座標(0,400)へ移動(瞬間移動)


pic1.RTW(-180,0.02);

→ 向きを元に戻す


■ 図形を描く(ここからがメインの模様)

pic1.FD(120, 1);

→ 前に120進む


pic1.RTW(45, 1);

→ 右に45度回転


pic1.FD(120, 1);

→ さらに前進


pic1.RTW(45, 1);

→ さらに45度回転


pic1.RTW(90,0.02);

→ 向きを90度変更


同じようなパターンが続く

これ以降は:

  • 120進む
  • 45度回る

を繰り返して、


● 右回転パターン

pic1.FD → RTW(45)

● 左回転パターン

pic1.LTW(45)

→ 左回りに変わる


■ 全体の意味

この後半のコードは:

👉 ジグザグ(または星・花のような形)を描いている


■ まとめ

このプログラムは大きく3つの動きです

① 最初

  • pic1とpic2が四角形状に移動
  • pic2が「潜る・浮く」を繰り返す

② 次

  • pic1を上に移動

③ 最後

  • 直線+45度回転で模様を描く
  • 右回りと左回りを組み合わせた図形

プログラム

スイミングで花

 

ブログ作成者 Reiko Sugiyama

 

Comments are closed.