gpt4 book ai didi

svg - 奇怪形状的SVG投影

转载 作者:行者123 更新时间:2023-12-04 05:22:53 24 4
gpt4 key购买 nike

这是来源:

<svg width="640" height="480" xmlns="http://www.w3.org/2000/svg">
<g>
<defs>
<filter id="f1" x="0" y="0" width="200%" height="200%">
<feOffset result="offOut" in="SourceGraphic" dx="0" dy="0" />
<feColorMatrix result="matrixOut" in="offOut" type="matrix"
values="0.2 0 0 0 0 0 0.2 0 0 0 0 0 0.2 0 0 0 0 0 1 0" />
<feGaussianBlur result="blurOut" in="matrixOut" stdDeviation="10" />
<feBlend in="SourceGraphic" in2="blurOut" mode="normal" />
</filter>
</defs>
<path fill="#E0E0E0" stroke="#FFFFFF" stroke-width="5" d="M 50 50 l 100 0 l -50 86.6 z" filter="url(#f1)"/>
</g>
</svg>

这是 Firefox 渲染的样子: Chrome 是相似的。

为什么阴影不对称?我希望让它看起来好像照明来自图像的正上方,所以阴影应该是对称的。它最终应该看起来像下面的光栅图像:

(很抱歉内饰的颜色不匹配,但我稍后会修复。)

最佳答案

这更像你想要的吗?

<svg width="640" height="480" xmlns="http://www.w3.org/2000/svg">
<g>
<defs>
<filter id="f1" x="-1" y="-1" width="300%" height="300%">
<feOffset result="offOut" in="SourceGraphic" dx="0" dy="10" />
<feColorMatrix result="matrixOut" in="offOut" type="matrix"
values="0.2 0 0 0 0 0 0.2 0 0 0 0 0 0.2 0 0 0 0 0 1 0" />
<feGaussianBlur result="blurOut" in="matrixOut" stdDeviation="10" />
<feBlend in="SourceGraphic" in2="blurOut" mode="normal" />
</filter>
</defs>
<path fill="#E0E0E0" stroke="#FFFFFF" stroke-width="5" d="M 50 50 l 100 0 l -50 86.6 z" filter="url(#f1)"/>
</g>
</svg>

编辑:解释:

我使过滤效果区域更大(在 width 上使用 height/ <filter> ),使其大于形状的边界框(其宽度的 300%)。当然,它必须重新定位(使用 x/ y ),以便形状位于效果区域的中心。我还使用 y 将阴影向下移动了一点 feOffset 上的属性.

旁注:正如 Erik Dahlström 在评论中提到的,使用 3而不是 300%widthheight在这种情况下是等价的,因为 filterUnits隐式设置为 objectBoundingBox . -1也是如此和 -100%xy .我混合了两种符号。

关于svg - 奇怪形状的SVG投影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13523557/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com