【发布时间】:2014-12-28 10:38:27
【问题描述】:
以下代码显示一个带有阴影的箭头。该要求要求使阴影略大于箭头,以便如果箭头是直的并且直接指向前方,则可以在箭头的任一侧看到等量的阴影。我尝试创建两个仅在水平位置上有所不同的阴影,但从未让它正常工作。
要求不模糊阴影,因此通过添加模糊来“放大”不是一种选择。图片不应该看起来很逼真。
我已经有代码可以创建放大的、垂直移动的、黑色的箭头副本。我希望有一个更完善的解决方案,因为那是很多代码和冗余数据。
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg id="785849135" width="960pt" height="720pt"
viewBox="160 0 960 720"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<defs>
<filter id='drop-shadow'>
<!-- Shadow Offset -->
<!-- EDIT: dx and dy to change the size of the shadow -->
<feOffset
dx='-4'
dy='4'
/>
<!-- Shadow Blur -->
<!-- EDIT: edit stdDeviation to change the shadow blurriness -->
<!-- "0" is no blur -->
<feGaussianBlur
stdDeviation='0'
result='offset-blur'
/>
<!-- Color & Opacity -->
<feFlood
flood-color='black'
flood-opacity='1'
result='color'
/>
<!-- Clip color inside shadow -->
<feComposite
operator='in'
in='color'
in2='offset-blur'
result='shadow'
/>
<!-- Put original object over shadow -->
<feComposite
operator='over'
in='SourceGraphic'
in2='shadow'
/>
</filter>
</defs>
<g filter='url(#drop-shadow)'>
<path fill="#654114" stroke="#654114" stroke-width="0.0" d="M547.71777 390.23407 L 527.47506 392.82273 540.08449 392.79837 539.86309 393.17777 426.68945 586.88612 399.23955 630.62126 361.53130 686.78918 337.97979 720.00000 362.91010 720.00000 391.19683 720.00000 410.65441 686.73793 441.43435 630.48495 463.47400 586.70712 552.51368 393.15324 552.68787 392.77403 565.28519 392.74969 547.71777 390.23407 z"/>
</g>
</svg>
【问题讨论】:
-
最好包含一张你正在尝试做的事情的前后图像并将其附加到问题中。
-
Michael - 我要附加一个前文件,但后文件会很困难。我必须复制并放大箭头的 Java 代码是通过电子邮件发送给我的片段,我尚未将这些片段集成到程序中。
-
这是上述代码的截屏。帽子和我所追求的唯一区别是扩大了阴影。 ![]jan2013.imghost.us/KJ/arrow.png
-

好吧,我放弃了,富文本编辑器没有出现,我的标记被忽略了。
标签: svg svg-filters