javascript - 如何在 svg 中沿笔划或路径绘制图案?

标签 javascript svg line

我需要沿着 SVG 路径绘制图案。我尝试使用 SVG 标记,但它们沿路径的方向存在问题。有没有其他方法可以做到这一点?如果是,我的方法应该是什么?预期的结果是这样的——
enter image description here

最佳答案

当我读到这个问题时,使用 unicodes 绘制链节的想法立刻出现了。

我搜索了很长时间的合适的unicode字符。无法使用链的 unicode 字符。 U+26D3 的 unicode 字符⛓ “链”的支持很差。

enter image description here

我决定使用 Unicode 字符的变体 - “侧面的拉丁小写字母”U+1D11 ᴑ和连接相邻链节的连字符 - -
技术支持:Firefox、Chrome、Opera、IE11
我没有检查 Safari 浏览器。

<svg width="600" height="400" viewBox="80 100 400 300">

 <path id="pathChain" d="M100,200 C100,100 250,100 250,200 S 400,300 400,200" stroke="grey" fill="none"/>


<text font-size="36" x="0" y="0" font-family="Times New Roman" fill="grey" >
<textPath id="result"    xlink:href="#pathChain">
<tspan dx="0" > &#7441; </tspan> <tspan dx="-15">   &#45; </tspan><tspan dx="-15"> &#7441;</tspan><tspan dx="-15">   &#45;</tspan><tspan dx="-15">   &#7441; </tspan><tspan dx="-15">   &#45; </tspan><tspan dx="-15"> &#7441;</tspan><tspan dx="-15">   &#45;</tspan><tspan dx="-15">   &#7441; </tspan><tspan dx="-15">   &#45; </tspan><tspan dx="-15"> &#7441;</tspan><tspan dx="-15">   &#45;</tspan><tspan dx="-15">   &#7441; </tspan><tspan dx="-15">   &#45; </tspan><tspan dx="-15"> &#7441;</tspan><tspan dx="-15">   &#45;</tspan><tspan dx="-15">   &#7441; </tspan><tspan dx="-15">   &#45; </tspan><tspan dx="-15"> &#7441;</tspan><tspan dx="-15">   &#45;</tspan><tspan dx="-15">   &#7441; </tspan>
  </textPath>
</text>				
			
</svg>   



除了链的静态之外,还有一个动画示例。

实现动画的命令:
<animate dur="10s" repeatCount="2" attributeName="startOffset" values="1%;55%;1"/>
<svg width="600" height="400" viewBox="100 100 400 300">

 <path id="pathChain" d="M100,200 C100,100 250,100 250,200 S 400,300 400,200" stroke="grey" fill="none"/>

<text font-size="36"  font-family="Times New Roman" fill="grey" >
<textPath id="result"    xlink:href="#pathChain">
<tspan dx="0" > &#7441; </tspan> <tspan dx="-15">   &#45; </tspan><tspan dx="-15"> &#7441;</tspan><tspan dx="-15">   &#45;</tspan><tspan dx="-15">   &#7441; </tspan><tspan dx="-15">   &#45; </tspan><tspan dx="-15"> &#7441;</tspan><tspan dx="-15">   &#45;</tspan><tspan dx="-15">   &#7441; </tspan><tspan dx="-15">   &#45; </tspan><tspan dx="-15"> &#7441;</tspan><tspan dx="-15">   &#45;</tspan><tspan dx="-15">   &#7441; </tspan><tspan dx="-15">   &#45; </tspan><tspan dx="-15"> &#7441;</tspan><tspan dx="-15">   &#45;</tspan><tspan dx="-15">   &#7441; </tspan><tspan dx="-15">   &#45; </tspan><tspan dx="-15"> &#7441;</tspan><tspan dx="-15">   &#45;</tspan><tspan dx="-15">   &#7441; </tspan>
<animate  dur="10s" repeatCount="2" attributeName="startOffset" values="1%;55%;1%"/> 
</textPath>
</text>				
			
</svg>   

关于javascript - 如何在 svg 中沿笔划或路径绘制图案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47828718/

相关文章:

python - 读取文本文件特定列和行的数据

java - OpenGL - 用点画线

c++ - 从一条线上找到网格方 block

javascript - 淡化整个窗口 - 然后加载 URL?

javascript - 嵌套的 ng-repeat for object within an object within an object

javascript - 如何向每个用户显示自定义数量的 SVG 圆圈?

html - 如何创建全宽 svg 矩形背景?

html - 一种使用 svg 生成内部径向阴影悬停图像的方法

javascript - 如何动态决定并告诉 d3.json() 函数何时采用哪个 json

javascript - executescript chrome 扩展无法正确执行