• 售前

  • 售后

热门帖子
入门百科

HTML5之SVG 2D入门4—笔画与填充

[复制链接]
一段或九段肝 显示全部楼层 发表于 2021-10-25 18:58:43 |阅读模式 打印 上一主题 下一主题
前面我们重点都在总结各类形状,文本和图片,接下来,我们照旧和讨论canvas一样,总结一下颜色处置惩罚,也就是添补和边框结果;你会发现这里的内容与canvas根本上是一致的。这些属性既可以以属性的情势写在元素中,也可以以CSS的情势生存(这是与canvas不一样的地方)。
添补色 - fill属性这个属性使用设置的颜色添补图形内部,使用很简朴,直接把颜色值赋给这个属性就可以了。看例子:

复制代码代码如下:
<rect x="10" y="10" width="100" height="100" stroke="blue" fill="red"
       fill-opacity="0.5" stroke-opacity="0.8"/>

上面例子中画了一个红色蓝边的矩形。注意几点:
1. 如果不提供fill属性,则默认会使用黑色添补,如果要取消添补,必要设置成none。
2. 可以设置添补的透明度,就是fill-opacity,值的范围是0到1。
3. 稍微复杂一点的是fill-rule属性。这个属性界说了判断点是不是属于添补范围的算法;除了inherit这个值外,还有两个取值:
nonzero:这个值采用的算法是:从必要判断的点向任意方向发射线,然后盘算图形与线段交点的处的走向;盘算结果从0开始,每有一个交点处的线段是从左到右的,就加1;每有一个交点处的线段是从右到左的,就减1;如许盘算完全部交点后,如果这个盘算的结果不便是0,则该点在图形内,必要添补;如果该值便是0,则在图形外,不必要添补。看下面的示例:
evenodd:这个值采用的算法是:从必要判断的点向任意方向发射线,然后盘算图形与线段交点的个数,个数为奇数则改点在图形内,必要添补;个数为偶数则点在图形外,不必要添补。看下图的示例:
边框色 - stroke属性上面的例子中已经用到了stroke属性,这个属性使用设置的值画图形的边框,使用起来也很直接,把颜色值赋给它就可以了。注意:
1. 如果不提供stroke属性,则默认不绘制图形边框。
2. 可以设置边的透明度,就是stroke-opacity,值的范围是0到1。
实际上,边的环境比图形内部稍微复杂一点,因为边除了颜色,还有"形状"必要界说。

线的端点 - stroke-linecap属性
这个属性界说了线段端点的风格,这个属性可以使用butt,square,round三个值。看例子:

复制代码代码如下:
<svg width="160" height="140">
  <line x1="40" x2="120" y1="20" y2="20" stroke="black" stroke-width="20" stroke-linecap="butt"/>
  <line x1="40" x2="120" y1="60" y2="60" stroke="black" stroke-width="20" stroke-linecap="square"/>
  <line x1="40" x2="120" y1="100" y2="100" stroke="black" stroke-width="20" stroke-linecap="round"/>
</svg>



这段代码绘制了3条使用差别风格线端点的线,
从左面的图中我们可以很容易看出3中风格的差别。

线的毗连 - stroke-linejoin属性
这个属性界说了线段毗连处的风格,这个属性可以使用miter,round,bevel三个值。看例子:

复制代码代码如下:
<svg width="160" height="280">
  <polyline points="40 60 80 20 120 60" stroke="black" stroke-width="20"
      stroke-linecap="butt" fill="transparent" stroke-linejoin="miter"/>
  
  <polyline points="40 140 80 100 120 140" stroke="black" stroke-width="20"
      stroke-linecap="round" fill="transparent" stroke-linejoin="round"/>
  
  <polyline points="40 220 80 180 120 220" stroke="black" stroke-width="20"
      stroke-linecap="square" fill="transparent" stroke-linejoin="bevel"/>
</svg>



从左面的图中我们很容易看到3中风格的差别。

线的虚实 - stroke-dasharray属性
这个属性可以设置线段采用何种虚实线。看例子:

复制代码代码如下:
<svg width="200" height="150">
  <path d="M 10 75 Q 50 10 100 75 T 190 75" stroke="black"
    stroke-linecap="round" stroke-dasharray="5,10,5" fill="none"/>
  <path d="M 10 75 L 190 75" stroke="red"
    stroke-linecap="round" stroke-width="1" stroke-dasharray="5,5" fill="none"/>
</svg>


这个属性是设置一些列数字,不过这些数字必须是逗号隔开的。
属性中固然可以包罗空格,但是空格不作为分隔符。每个数字
界说了实线段的长度,分别是按照绘制、不绘制这个次序循环下去。
以是左面的例子中绘制的线是画5单元的实线,留5单元的空格,
再画5单元的实线...如许一直下去。
除了这些常用的属性,还有下列属性可以设置:
stroke-miterlimit:这个和canvas中的一样,它处置惩罚什么时候画和不画线毗连处的miter结果。
stroke-dashoffset:这个属性设置开始画虚线的位置。
使用CSS展示数据HTML5强化了DIV+CSS的头脑,以是展示数据的部分还可以交给CSS处置惩罚。与平常HTML元素相比,只不过是 background-color和border换成了fill和stroke。其他的大多都差不多。简朴看个例子:

复制代码代码如下:
#MyRect:hover {
   stroke: black;
   fill: blue;
}

是不是很熟悉,就是这么简朴的。
实用参考:
脚本索引:http://msdn.microsoft.com/zh-cn/library/ff971910(v=vs.85).aspx
开辟中心:https://developer.mozilla.org/en/SVG
热门参考:http://www.chinasvg.com/
官方文档:http://www.w3.org/TR/SVG11/

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作