svg - svg 中的简单填充图案 : diagonal hatching

标签 svg

我如何填充 SVG 形状,不是使用单一颜色、图像或渐变,而是使用阴影图案,如果可能的话对角线。

已经过去 2 个小时了,我什么也没发现(至少在 2005 年之后)。

我认为可能的破解方法是使用阴影 PNG 作为填充,但这并不理想。

最佳答案

我在互联网上也没有找到任何有关对角线孵化的内容,所以我将在这里分享我的解决方案:

<pattern id="diagonalHatch" patternUnits="userSpaceOnUse" width="4" height="4">
  <path d="M-1,1 l2,-2
           M0,4 l4,-4
           M3,5 l2,-2" 
        style="stroke:black; stroke-width:1" />
</pattern>

(注意路径表达式中的小写“l”)

上面创建了一个阴影线,其对角线从左下角到右上角,间隔 4 个像素。除了对角线(M0,4 l4,-4)之外,您还必须描边图案区域的左上边缘和右下边缘,因为否则该线会因剪切而“收缩”它与正方形边缘相交的地方。

Example of a pattern after applying the above steps, it shows how the pattern it titled to make the end product

要使用此图案填充矩形,请执行以下操作:

<rect x="0" y="0" width="100%" height="100%" fill="url(#diagonalHatch)"/>

关于svg - svg 中的简单填充图案 : diagonal hatching,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13069446/

相关文章:

svg - 多个 SVG 径向渐变

svg - 使用 Google 图表工具的范围标记

css - 如何更改 SVGCircleElement 对象的样式?

javascript - document.documentElement.appendChild() 不起作用

javascript - 如何让 Selenium Java 单击 SVG DOM 树中的 SVG 节点?

html - Internet Explorer 中图像上的剪辑路径问题

javascript - 为什么我的对象 contentDocument 返回 null?

html - 动画发光的 SVG 线条图不能跨浏览器工作

html - 在不改变背景图像比例的情况下设置 SVG 的动画高度

SVG 绝对坐标?