我想用重复的图像模式填充矩形空间.图像以交错的方形平铺方式排列.两个相邻的行在x方向上错开正方形边宽度的一半.

如何使用svg中的模式元素来实现这一点?

Here is the diagram of the result I want

我试图实现这一转变,但没有成功.

<svg width=1000 height=1000>
  <pattern id="bar" width="200" height="200" patternUnits="userSpaceOnUse" patternTransform="rotate(0)">
    <rect class="checker" x="0" width="100" height="100" y="0" fill="blue" />
    <rect class="checker" x="100" width="100" height="100" y="0" fill="yellow" />
    <rect class="checker" x="50" y="100" width="100" height="100" y="0" fill="red" stroke="red" />
    <rect class="checker" x="150" y="100" width="100" height="100" y="0" fill="green" />
  </pattern>
  <rect width="100%" height="100%" fill=url(#bar)>
</svg>

困难在于,我的每个方块都是一个图像,不能一分为二.所以我找不到这个模式的最小元素.

提前谢谢你.

推荐答案

像这样的...可以用图像替换路径.

诀窍是将其中一块画成两半,让pattern rect剪裁每半.

<svg>
  <pattern id="p" patternUnits="userSpaceOnUse" width="80" height="80">
    <path transform="translate(8,8)" d="M17.37 17.07H6.57L4.24 24H3.01l8.23-24h1.52l8.23 24h-1.3zm-.39-1.13l-5-14.96-5.03 14.98h10.03Z"/>
    <path transform="translate(48,8)" d="M17.37 17.07H6.57L4.24 24H3.01l8.23-24h1.52l8.23 24h-1.3zm-.39-1.13l-5-14.96-5.03 14.98h10.03Z"/>
    <path transform="translate(28,48)" d="M17.37 17.07H6.57L4.24 24H3.01l8.23-24h1.52l8.23 24h-1.3zm-.39-1.13l-5-14.96-5.03 14.98h10.03Z"/>
    <path transform="translate(68,48)" d="M17.37 17.07H6.57L4.24 24H3.01l8.23-24h1.52l8.23 24h-1.3zm-.39-1.13l-5-14.96-5.03 14.98h10.03Z"/>
    <path transform="translate(-12,48)" d="M17.37 17.07H6.57L4.24 24H3.01l8.23-24h1.52l8.23 24h-1.3zm-.39-1.13l-5-14.96-5.03 14.98h10.03Z"/>
  </pattern>
  <rect width="200" height="200" fill="url(#p)"/>
</svg>

Javascript相关问答推荐

ChartJS:分组堆叠条形图渲染错误

想要检测字符串中的所有单词

React状态变量在使用++前置更新时引发错误

在具有焦点和上下文的d3多线图表中,如何将上下文的刷新限制在特定日期?

创建1:1比例元素,以另一个元素为中心

微软Edge Select 间隙鼠标退出问题

zoom svg以适应圆

react/redux中的formData在expressjs中返回未定义的req.params.id

如何用显示网格平滑地将元素从一个地方移动到另一个地方?

使用LocaleCompare()进行排序时,首先使用大写字母

如何将react—flanet map添加到remixjs应用程序

如何在每次单击按钮时重新加载HighChart/设置HighChart动画?

WhatsApp Cloud API上载问题:由于MIME类型不正确而导致接收&Quot;INVALID_REQUEST";错误

如何将innerHTML字符串修剪为其中的特定元素?

NG/Express API路由处理程序停止工作

以编程方式聚焦的链接将被聚焦,但样式不适用

触发异步函数后不能显示数据

使用线性插值法旋转直线以查看鼠标会导致 skip

JavaScript将字符串数字转换为整数

为什么我看到的是回复,而不是我的文档?