javascript-如何在d3.js的svg圈子中填充图像
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-如何在d3.js的svg圈子中填充图像,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1795字,纯文字阅读大概需要3分钟。
内容图文
![javascript-如何在d3.js的svg圈子中填充图像](/upload/InfoBanner/zyjiaocheng/683/3413d1b86ee94f48a0ec1ed2183bcb8a.jpg)
这是我的代码在我的svg中填充圆圈.
var svgContainer = d3.select("body").append("svg")
.attr("width", 1000)
.attr("height", 1000);
var circles = svgContainer.selectAll("circle")
.data(nodes)
.enter()
.append("circle");
var circleAttributes = circles
.attr("cx", function (d) { return d.x_axis; })
.attr("cy", function (d) { return d.y_axis; })
.attr("r", function (d) { return d.radius; })
.attr('fill', 'green')
但是,我不想在我的圈子内填充绿色,而是想在url在我的json数据中的每个圈子内填充不同的图像.我一直在尝试使用.attr(‘fill’,url(function(d){return d.url})),但是它不起作用.我是d3的新手,有人可以帮助我解决此任务吗?
解决方法:
假设您有一个像这样的数据集:
data = [{
posx: 100,
posy: 100,
img: "https://cdn0.iconfinder.com/data/icons/flat-round-system/512/android-128.png",
}, {
posx: 200,
posy: 200,
img: "https://cdn1.iconfinder.com/data/icons/social-media-set/24/Reverbnation-128.png"
}, {
posx: 300,
posy: 300,
img: "https://cdn1.iconfinder.com/data/icons/user-pictures/100/male3-128.png"
}]
像这样在svg中创建如下定义:
var defs = svg.append('svg:defs');
遍历所有数据,并使用图像和圆进行尽可能多的定义.
在圆内填充将像下面这样的def的ID传递给.style(“ fill”,“ url(#grump_avatar” i“)”);
data.forEach(function(d, i) {
defs.append("svg:pattern")
.attr("id", "grump_avatar" + i)
.attr("width", config.avatar_size)
.attr("height", config.avatar_size)
.attr("patternUnits", "userSpaceOnUse")
.append("svg:image")
.attr("xlink:href", d.img)
.attr("width", config.avatar_size)
.attr("height", config.avatar_size)
.attr("x", 0)
.attr("y", 0);
var circle = svg.append("circle")
.attr("transform", "translate(" + d.posx + "," + d.posy + ")")
.attr("cx", config.avatar_size / 2)
.attr("cy", config.avatar_size / 2)
.attr("r", config.avatar_size / 2)
.style("fill", "#fff")
.style("fill", "url(#grump_avatar" + i + ")");
})
工作代码here
受此启发SO answer
内容总结
以上是互联网集市为您收集整理的javascript-如何在d3.js的svg圈子中填充图像全部内容,希望文章能够帮你解决javascript-如何在d3.js的svg圈子中填充图像所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。