Google で自分の問題を検索するために 2 日を無駄にしましたが、何の手がかりも得られませんでした。実際には、キャンバス上で円、四角、線をマウスのダウンおよびアップイベントで描画するための作業コードがあります(この描画はキャンバス上に動的に描画されます)。今、この図をランダムに含むキャンバスを拡大したいと思います。
これを試してみたところ、キャンバスのスケーリング後に図を再描画する必要があることがわかりました。簡単な方法でこれを行う方法はありますか?
描画された図に関連するすべての情報を維持するメソッドはキャンバスにありますか?
ズーム後にそれぞれの比率でこの図を描くことはできますか?
助けてください...さらに作業するのに役立つ手がかりまたはコードスニペット。助けてくれてありがとう.....
ズーム中に何度も呼び出される1つの曲線を含む次のコードスニペットがあります.しかし、この図は静的であるため、毎回座標は同じです. しかし、私の場合、フィギュアの座標はフィギュアの変化に合わせて変化します。
function draw(scale, translatePos){
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
// clear canvas
context.clearRect(0, 0, canvas.width, canvas.height);
context.save();
context.translate(translatePos.x, translatePos.y);
context.scale(scale, scale);
context.beginPath(); // begin custom shape
context.moveTo(-119, -20);
context.bezierCurveTo(-159, 0, -159, 50, -59, 50);
context.bezierCurveTo(-89, -95, -139, -80, -119, -20);
context.closePath(); // complete custom shape
context.fill();
context.stroke();
context.restore();
}