疑問に思うのは、グラフ上の領域を拡大するための解決策が誰にもありません。私が言いたいのは、キャンバス上のあるポイントにマウスを置いて、押したままマウスを別の場所に移動し、マウスを上に移動してそのブロックをズームしたいということです。 x軸はスケールし、yはスケールしません。HTMLキャンバスグラフ上の領域にズーム
これはまさに私が何をしたいです -
http://canvasjs.com/docs/charts/basics-of-creating-html5-chart/zooming-panning/は、今私は、ズームインすることができましたが、私のグラフは、ズーム後の混乱です。ラインとポイントはすべて伸び、ねじれなど、私はスケールを使って調整しようとしました。
これまで私が行ってきたことです。
let y = heightOfCanvas/2,
// Get the region in pixels to zoom to. If canvas width
// is 500, this is lets say 100px to 400px.
regionToZoom = toX - fromX,
// Subtract from actual width, so we get what will be scaled
// out.
difference = widthOfCanvas - regionToZoom,
// Scale = fullWidth/partWidth
scale = widthOfCanvas/difference,
// This is how I worked out the value to translate back,
// so that it lines up right
translateBack = widthOfCanvas * scale
ctx.translate(from, y);
ctx.scale(scale, 1);
from = from * translateBack;
ctx.translate(-from, -y);
// REDRAW GRAPH AFTER
このようにズームしても問題はありませんが、私が言ったように、それは後になります。
上記の例のように、誰かが過去に似たようなことをしたことがあれば、私は助けに感謝します。
ショーン。
私はよく分かりませんが、これはあなたを助けるかもしれません。 https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/save –