Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript d3.js徒手绘图_Javascript_Html_Canvas_D3.js - Fatal编程技术网

Javascript d3.js徒手绘图

Javascript d3.js徒手绘图,javascript,html,canvas,d3.js,Javascript,Html,Canvas,D3.js,我有一个SVG,里面有各种各样的图像,它与d3.js的缩放功能相连接。因此,当我缩放所有图像时,它们都会相应地缩放。我的下一步是添加绘图(手绘)功能。当我在使用D3.js之前创建它时,我只是使用了一个html画布并在上面绘制。然而,它似乎不想与d3.js配合得很好。我无法在svg中使用相同的画布绘制方法,因为其他图像都在svg中。本质上,我希望能够手绘,这样“手绘画布”将与SVG中的图像一起缩放。 1-d3.js是否包含任何此类手绘库功能?你能给我指一下正确的方向吗? 2-如果没有,是否有其他方

我有一个SVG,里面有各种各样的图像,它与d3.js的缩放功能相连接。因此,当我缩放所有图像时,它们都会相应地缩放。我的下一步是添加绘图(手绘)功能。当我在使用D3.js之前创建它时,我只是使用了一个html画布并在上面绘制。然而,它似乎不想与d3.js配合得很好。我无法在svg中使用相同的画布绘制方法,因为其他图像都在svg中。本质上,我希望能够手绘,这样“手绘画布”将与SVG中的图像一起缩放。 1-d3.js是否包含任何此类手绘库功能?你能给我指一下正确的方向吗? 2-如果没有,是否有其他方法可以让画布和svg彼此缩放

编辑

这里尝试使用d3.js缩放画布(第一部分是我用来缩放SVG的部分)

///SVG缩放

var zoom = d3.behavior.zoom().scaleExtent([.75, 2.0]).on("zoom", zoom);

 d3.select("#mysvg").call(zoom).on('mousedown.zoom',null);


function zoom() {

d3.select("#mapImages").attr("transform", "translate(" + d3.event.translate + ")scale(" + d3.event.scale + ")");

}
////画布缩放(不工作)


我想看看这个d3的例子。通过d3的事件系统,演示zoom如何使用canvas.scale


(附加,因为它不是答案的一部分…)您的问题不是非常清楚,但我会尽力提供帮助。看起来里面有图像的SVG。当你在图像上使用d3的缩放功能时,它是有效的。你希望能够在HTMLCanvas上画画,但我认为,把它当作图像来对待。。。希望有帮助!谢谢你的提示。仍然有点不确定…请参阅上面的一些代码,我添加了这些代码来尝试使画布缩放,但不起作用
 var canvas = d3.behavior.zoom().scaleExtent([.75, 2.0]).on("zoom", canvasZoom);

d3.select("#canvasDiv").call(canvas).on('mousedown.zoom',null);

function canvasZoom() {

  d3.select("#mycanvas").attr("transform", "translate(" + d3.event.translate + ")scale(" + d3.event.scale + ")");
}