【週刊ドットインストール】 『データで学ぶアルゴリズム Level 1-2』を運営中、Level 1-2も来週リリース予定!
「詳解JavaScript Canvas編」を終えたので、こちらの動画にチャレンジしています。 途中まではお手本通りに動作するのですが、関数 update を定義して実行するところ(動画 0:53 の箇所)でうまくいかなくなってしまいました。
以下が現在のソースコードです。 (お手本のコードが古い書き方だったので、私が現在 dotinstall さんで学習させていただいている let, const を使う新しい方法に書き換えながら進めています。)
現在のコードは、
という構成になっています。これを実行すると添付画像のようなことになってしまいます。
このコードから関数 update を削除し
として、変数 angle に 45 を代入すると、きちんと座標軸ごと 45度に回転するのですが…。
関数 update の定義に何か誤りがあるのでしょうか?
宜しくお願いいたします。
'use strict'; { let angle = 0; function draw() { const stage = document.getElementById('stage'); if (typeof stage.getContext === 'undefined') { return; } const ctx = stage.getContext('2d'); const WIDTH = stage.width; const HEIGHT = stage.height; let r0 = 50; let r1 = 60; ctx.save(); ctx.translate(WIDTH / 2, HEIGHT / 2); ctx.rotate(Math.PI / 180 * angle); // Axis ctx.strokeStyle = 'rgba(0, 0, 0, 0.3)'; ctx.beginPath(); ctx.moveTo(-1000, 0); ctx.lineTo(1000, 0); ctx.stroke(); ctx.beginPath(); ctx.moveTo(0, -1000); ctx.lineTo(0, 1000); ctx.stroke(); ctx.strokeStyle = 'orange'; ctx.lineWidth = 6; ctx.beginPath(); ctx.moveTo(0, -r0); ctx.lineTo(0, -r1); ctx.stroke(); ctx.restore; } function update() { draw(); angle += 12; setTimeout(update, 60); } update(); }
ドットインストールは、3分動画でマスターできるプログラミング学習サービスです。
3分で気軽に学習でき、スマートフォンからも視聴可能です。ホームページやWebサービスの制作を通して、実践的にプログラミングを学べます。
他にも、ゲーム制作やデータ分析・機械学習・AIに使われる言語まで幅広くカバー。学びたい分野のレッスンがきっと見つかります。
この回答を見るにはプレミアムプランへの登録が必要です
「詳解JavaScript Canvas編」を終えたので、こちらの動画にチャレンジしています。
途中まではお手本通りに動作するのですが、関数 update を定義して実行するところ(動画 0:53 の箇所)でうまくいかなくなってしまいました。
以下が現在のソースコードです。
(お手本のコードが古い書き方だったので、私が現在 dotinstall さんで学習させていただいている let, const を使う新しい方法に書き換えながら進めています。)
現在のコードは、
という構成になっています。これを実行すると添付画像のようなことになってしまいます。
このコードから関数 update を削除し
として、変数 angle に 45 を代入すると、きちんと座標軸ごと 45度に回転するのですが…。
関数 update の定義に何か誤りがあるのでしょうか?
宜しくお願いいたします。