【发布时间】:2018-07-16 12:16:37
【问题描述】:
我正在使用 SVG 过滤器 feMorphology 的扩张来实现形状的阴影扩散。
我期待以下结果。
<?xml version="1.0" encoding="UTF-8"?>
<svg width="188px" height="209px" viewBox="0 0 188 209" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Test</title>
<defs>
<polygon id="path-1" points="94 29 168 194 20 194"></polygon>
<filter x="-100%" y="-100%" width="1000%" height="1000%" filterUnits="userSpaceOnUse" id="filter">
<feMorphology radius="5" operator="dilate" in="SourceAlpha" result="morphOut"></feMorphology>
<feMerge>
<feMergeNode in="morphOut"></feMergeNode>
<feMergeNode in="SourceGraphic"></feMergeNode>
</feMerge>
</filter>
</defs>
<g id="Triangle">
<path d="M 20 20 L 120 20 L 120 120 L 20 120 z " filter="url(#filter)" stroke-width="1" fill-rule="evenodd" fill="rgb(216,216,216)"/>
<path d="M 70 150 L 120 200 L 20 200 z" filter="url(#filter)" stroke-width="1" fill-rule="evenodd" fill="rgb(216,216,216)"/>
</g>
</svg>
但我的代码会返回某些形状的修剪角。帮我 解决这个问题。
【问题讨论】:
-
一个更好的阴影传播策略是将 feGaussianBlur 或 feConvolveMatrix 与 feComponentTransfer/feFuncA 结合起来以提高不透明度。 codepen.io/mullany/pen/sJopz 可能会有所帮助
标签: javascript svg filter svg-filters