我正在開發一個小型教育工具,爲此我想將陰影添加到SVG路徑。爲了構建我的圖形,我使用了D3.js.這通常是可愛的,但具體的形狀我遇到了問題,特別是對於具有水平和/或垂直線的小形狀。如何防止使用D3的小形狀的前衛陰影
爲了說明這一點,我做了一個JSFiddle example三個三角形。綠色三角形上的陰影看起來很漂亮,橙色三角形上的陰影仍然正常,但紅色三角形上的陰影看起來非常難看。
陰影使用this code作爲示例中創建:
var defs = svg.append("defs").attr("height","160%");
var filter = defs.append("filter").attr("id", "schaduw");
filter.append("feGaussianBlur").attr("in", "SourceAlpha")
.attr("stdDeviation", 5).attr("result", "blur");
filter.append("feOffset").attr("in", "blur")
.attr("dx", 3)
.attr("dy", 3)
.attr("result", "offsetBlur");
var feMerge = filter.append("feMerge");
feMerge.append("feMergeNode").attr("in", "offsetBlur");
feMerge.append("feMergeNode").attr("in", "SourceGraphic");
如在的jsfiddle碼中可以看出,形狀之間的唯一有意義的區別是它們的大小。我怎樣才能防止小的形狀有醜陋的陰影?
任何幫助非常感謝! =)