Я разрабатываю небольшой обучающий инструмент, для которого я хотел бы добавить тени к путям SVG. Для построения моей графики я использую D3.js. Обычно это прекрасно работает, но с конкретными формами я сталкиваюсь с проблемами, особенно с небольшими формами, имеющими горизонтальные и / или вертикальные линии.
Чтобы проиллюстрировать это, я сделал пример JSFiddle с тремя треугольниками. Тень на зеленом треугольнике выглядит красиво, тень на оранжевом треугольнике все еще в порядке, но тень на красном треугольнике выглядит очень некрасиво.
Тень создается с использованием этого кода в качестве примера:
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, единственное существенное различие между фигурами - это их размер. Как я могу предотвратить появление некрасивых теней на маленьких формах?
Любая помощь очень ценится! знак равно