これはあなたがここでD3 v4の
を使用していると仮定し、ズーム動作がビットを分かりやすく説明するためにthis relevant example
var zoom = d3.zoom()
.on("zoom", zoomed)
canvas
.call(zoom.transform, transform)
に初期化されている方法です、最後の行にも、このように書くことができます:
zoom.transform(canvas, transform)
transform
は、あなたが提供する関数です。この関数が呼び出され、その返された値が使用されているので、あなたも、このようにそれを書き換えることができます:変換を適用する最低レベルの道をだ
zoom.transform(canvas, d3.zoomIdentity.translate(...) /* and .scale(...) etc */)
を。
便宜上
、代わりのzoom.transform
、あなたがより簡単に、代わり
var zoom = d3.zoom()
.scaleExtent([1, Infinity])
.translateExtent([[0, 0], [width, height]])
.on('zoom', handleZoom)
zoomable.call(zoom.translateBy, initialX, initialY)
か(内部zoom.transform
上記のように呼び出します)zoom.translateBy
を、使用することができますが、最後の行を書き換えることができます
zoom.translateBy(zoomable, initialX, initialY)
いずれの場合も、zoom
は翻訳と縮尺の状態を保持していないため、zoomable
が含まれています。その状態は変換される要素に格納されます。つまり、zoomable
です。
v4のzoomTransform関数を使用するにはどうすればよいですか? [リンク](https://github.com/d3/d3-zoom#zoom-transforms)@meetamit – Tekill
[リンク](https://github.com/d3/d3-zoom/issues/47) – Tekill