JavaScript関数を使用してキャンバスに描画された円の半径を拡大しようとしています。JavaScriptで更新するキャンバス描画を更新する
あり同様の問題を持つ多くの話題があったが、これを修正するだろう答えを見つけることができませんでした、私はsetInterval
、setTimeout
のように提案されたビルトインメソッドを使用して試してみた、window.requestAnimationFrame
と円を再描画するキャンバスをクリア更新された変数を使用します。
これまでのところ、setInterval
メソッドは更新を表示していましたが、以前の繰り返しをキャンバスに保持していましたが、クリアメソッドは機能しません。使用してコードを合理化し、すべてのonlickにキャンバスをリフレッシュするために、イベントハンドラを使用する方法があります、のsetIntervalを使用して
//Define globals
var radiusIncrement = 5;
var ballRadius = 20;
//Helper functions
function increaseRadius() {
ballRadius += radiusIncrement;
}
function decreaseRadius() {
if (ballRadius > 0) {
ballRadius -= radiusIncrement;
}
}
//Draw handler
function draw() {
var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.arc(canvas.height/2,canvas.width/2,ballRadius,0,2*Math.PI);
ctx.stroke();
}
//Event handler
setInterval(function() {
draw();
ctx.clearRect(0,0,canvas.width,canvas.height);
}, 100);
<!--Create frame and assign callbacks to event handlers-->
<button type="button" onclick="increaseRadius()">Increase Radius</button>
<button type="button" onclick="decreaseRadius()">Decrease Radius</button>
<canvas id="myCanvas" width="400" height="400" style="border:1px solid #000000;"></canvas>
むしろより:ここ
は例ですか?ありがとうございました。
乾杯。
素晴らしい、ありがとうMauro、それは私が探していた合理化されたソリューションの種類です。何とかボールが0の近くで消えると、簡単に修正できるはずです。 :D – xGLUEx
こんにちはマウロ、実際には動作、それはちょうどそれが半径5の下に消えて小さいです;) – xGLUEx
嬉しい、私は助けることができてうれしい! –