[英]How can I assign every pixel in an svg a color based on some function?
我想做的就是根據與屏幕上其他對象的關系,根據像素的x和y坐標為每個像素着色。 我正在使用d3來完成所有其他的svg工作,但是我無法弄清楚如何在數據綁定后再處理每個像素。 不發布代碼,因為我正在尋找一種非常通用的方式來執行此操作:例如,為每個點着色,使(x + y)%73 == 0綠色。
對於那些感興趣的人:回想一下,我建議在SVG上使用canvas來完成這樣的任務,但這是使用d3的一種共同解決方案:
WIDTH = $(window).width();
HEIGHT = $(window).height();
$(document).ready( function() {
var svg = d3.select("#svg")
.attr("width", WIDTH)
.attr("height", HEIGHT);
points = []
for (x=0;x<WIDTH/10;x++) {
for (y=0;y<HEIGHT/10;y++) {
points.push([x,y]);
}
}
svg.selectAll("rect")
.data(points)
.enter().append("rect")
.attr("x", function(d) {return d[0];})
.attr("y", function(d) {return d[1];})
.attr("width",1)
.attr("height",1)
.style("fill",function(d) {
if ((d[0] + d[1])%73 == 0)
return "green";
return "black";
});
}
假設您的html正文中有一個id = svg的svg元素。 為了測試目的,我在每個dimensino中只經歷了1/10的方式,完整尺寸的加載速度要慢100倍,考慮到您確實不應該為此使用SVG,這相當慢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.