Надеюсь, я использую правильный термин, но в основном я пытаюсь создать подсветку в верхней части круговой диаграммы в D3. Я видел много вещей для добавления тени теней, но не смог сделать эту работу для подсветки. Итак, я попытался добавить дугу поверх диаграммы и добавить к ней гауссово размытие, но есть две проблемы: он не переходит с остальной частью графика, а выделение проходит над диаграммой, t, похоже, заставит его оставаться в пределах границ диаграммы.Есть ли способ добавить подсветку в круговую диаграмму в d3?
Вот пример: http://jsfiddle.net/hf3adsj5/
код, я использую, чтобы попытаться добавить подсветку выглядит следующим образом:
var arc2 = d3.svg.arc()
.innerRadius(innerRadius)
.outerRadius(outerRadius)
.startAngle(Math.PI/4)
.endAngle(-7/12*Math.PI);
var filter2 = defs.append("filter")
.attr("id","highlight");
filter2.append("feGaussianBlur")
.attr("in","SourceAlpha")
.attr("stdDeviation",2)
.attr("result","blur");
filter2.append("feColorMatrix")
.attr("in", "blur")
.attr("type", "matrix")
.attr("values", "0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0")
.attr("result", "whiteblur");
filter2.append("feOffset")
.attr("in","whiteblur")
.attr("dx",3)
.attr("dy",3)
.attr("result","offsetBlur");
var feMerge2 = filter2.append("feMerge");
feMerge2.append("feMergeNode")
.attr("in","offsetBlur");
feMerge2.append("feMergeNode")
.attr("in","SourceGraphic");
svg.append("path")
.attr("d",arc2)
.style("filter","url(#highlight)");
Есть ли способ сделать это без добавления дополнительной дуги? Или, по крайней мере, получить его для перехода, как тень?
Как вы делаете переходы круговой диаграммы? Можете ли вы создать jsFiddle или Plunker, который воссоздает проблему? – Mark
@Mark См. Править. – josh