javascript-在D3强制布局中自动缩放对象
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-在D3强制布局中自动缩放对象,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1605字,纯文字阅读大概需要3分钟。
内容图文
![javascript-在D3强制布局中自动缩放对象](/upload/InfoBanner/zyjiaocheng/676/5a9985d540d642bf9e55af14ef871f5d.jpg)
我有一个力导向图,并实现了自动完成功能以突出显示一个节点.基本上,一旦选择了一个节点,它就会变成红色.我现在想在此节点上“缩放”,这是将我的窗口更改为该节点大小的400%,并且该节点应居中.
以下是我的代码的相关示例:(或者您可以直接转到我设置的jsFiddle.)
首先,用于创建svg元素的代码:
var w = 4000,
h = 3000;
var vis = d3.select("#mysvg")
.append("svg:svg")
.attr("width", "100%")
.attr("height", "100%")
.attr("id","svg")
.attr("pointer-events", "all")
.attr("viewBox","0 0 "+w+" "+h)
.attr("perserveAspectRatio","xMinYMid")
.append('svg:g')
.call(d3.behavior.zoom().on("zoom", redraw))
.append('svg:g');
然后,作为示例,该函数用于在“正常”缩放时重绘有向图.
function redraw() {
trans=d3.event.translate;
scale=d3.event.scale;
vis.attr("transform",
"translate(" + trans + ")"
+ " scale(" + scale + ")");
}
这是我图的节点:
vis.selectAll("g.node")
.data(nodes, function(d) {return d.id;})
.enter().append("g")
.append("circle")
.attr("id", function(d){return "circle-node-"+ d.id})
.attr("fill","white")
.attr("r","50px")
.attr("stroke", "black")
.attr("stroke-width","2px");
最后是我的自动完成功能.
$(function() {
$( "#tags" ).autocomplete({
source: nodes; //...
select: function( event, ui){
// ...
vis.selectAll("#circle-node-"+ui.item.value)
.transition()
.attr("fill", "red")
}
})
});
我尝试尽可能少地添加代码,如果我忘记了一些东西,对不起.
更新这里是jsFiddle,说明了我现在的位置.
解决方法:
缩放和平移应在将节点涂成红色的相同功能中进行.您尚未真正描述缩放的行为,但最简单的方法可能是将平移和缩放应用于包含图形的g元素.
我已经更改了您的jsfiddle来执行此操作;结果为here.我以为“节点大小的400%”是指应将节点放大400%?如果您要更改缩放系数,我已经为其引入了一个变量.
内容总结
以上是互联网集市为您收集整理的javascript-在D3强制布局中自动缩放对象全部内容,希望文章能够帮你解决javascript-在D3强制布局中自动缩放对象所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。