Вы можете создать более аккуратные закругленные углы, используя трюк размытие-затем-порог.
Мы размываем черный треугольник, затем используем примитив feComponentTransfer
для преобразования темных серых в черные и более светлые серые вбелый.
Размер «хода» можно настроить, изменив stdDeviation
или изменив количество 1
с в атрибуте tableValues
.
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128">
<defs>
<style>
.cls-1{fill:#feb500;}
</style>
<filter id="solid-border2" width="130%" color-interpolation-filters="sRGB">
<feFlood flood-color="black" result="base"/>
<feGaussianBlur result="blur" in="SourceAlpha" stdDeviation="3"/>
<feComponentTransfer in="blur" result="threshold">
<feFuncA type="discrete" tableValues="0 1 1 1 1 1 1 1 1 1 1 1 1 1"/>
</feComponentTransfer>
<feBlend in="SourceGraphic" in2="threshold" mode="normal"/>
</filter>
</defs>
<g id="background" filter="url(#solid-border2)">
<polygon class="cls-1" points="64 13 6.5 107 121.5 107"/>
</g>
</svg>
При желании вы также можете применить этот трюк к вашей версии фильтра.Тем не менее, углы становятся немного прикольными.
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128">
<defs>
<style>
.cls-1{fill:#feb500;}
</style>
<filter id="solid-border" width="130%">
<feFlood flood-color="black" result="base"/>
<feMorphology in="SourceAlpha" operator="dilate" radius="4"/>
<feGaussianBlur stdDeviation="2"/>
<feComponentTransfer>
<feFuncA type="discrete" tableValues="0 1 1 1 1 1"/>
</feComponentTransfer>
<feBlend in="SourceGraphic" in2="drop" mode="normal"/>
</filter>
</defs>
<g id="background" filter="url(#solid-border)">
<polygon class="cls-1" points="64 13 6.5 107 121.5 107"/>
</g>
</svg>