SVG 2D入门4 - 笔画与填充】的更多相关文章

前面我们重点都在总结各类形状,文本和图片,接下来,我们还是和讨论canvas一样,总结一下颜色处理,也就是填充和边框效果:你会发现这里的内容与canvas基本上是一致的.这些属性既可以以属性的形式写在元素中,也可以以CSS的形式保存(这是与canvas不一样的地方).填充色 - fill属性 这个属性使用设置的颜色填充图形内部,使用很简单,直接把颜色值赋给这个属性就可以了.看例子: <rect x="10" y="10" width="100&quo…
以二次贝塞尔曲线的公式为例: js函数: //p0.p1.p2三个点,其中p0为起点,p2为终点,p1为控制点 //它们的坐标用数组表示[x,y] //t的范围是0-1 function qBerzier(p0,p1,p2,t){ var x = (1 - t) * (1 - t) * p0[0] + 2 * t * (1 - t) * p1[0] + t * t * p2[0]; var y = (1 - t) * (1 - t) * p0[1] + 2 * t * (1 - t) * p1[…
到目前为止,SVG与Canvas的主要特性均已经总结完毕了.它们都是HTML5中支持的2D图形展示技术,而且均支持向量图形.现在,我们就来比对一下这两种技术,分析一下它们的长处和适用场景.首先分析一下两种技术的显著特点,看下面的表格: Canvas SVG 基于像素(动态 .png) 基于形状 单个 HTML 元素 多个图形元素,这些元素成为 DOM 的一部分 仅通过脚本修改 通过脚本和 CSS 修改 事件模型/用户交互颗粒化 (x,y) 事件模型/用户交互抽象化 (rect, path) 图面…
SVG支持的蒙板 SVG支持多种蒙板特效,使用这些特性,我们可以做出很多很炫的效果.至于中文中把mask叫做"蒙板"还是"遮罩"就不去区分了,这里都叫做蒙板吧. SVG支持的蒙板类型:  1. 裁剪路径(cliping path) 裁剪路径是由path, text或者基本图形组成的图形.所有在裁剪路径内的图形都可见,所有在裁剪路径外的图形都不可见.  2. 遮罩/蒙板(mask) 蒙板是一种容器,它定义了一组图形并将它们作为半透明的媒介,可以用来组合前景对象和背景.…
坐标系统 SVG存在两套坐标系统:视窗坐标系与用户坐标系.默认情况下,用户坐标系与视窗坐标系的点是一一对应的,都为原点在视窗的左上角,x轴水平向右,y轴竖直向下:如下图所示: SVG的视窗位置一般是由CSS指定,尺寸由SVG元素的属性width和height设置,但是如果SVG是存储在embedded对象中(例如object元素,或者其他SVG元素),而且包含SVG的文档是用CSS或者XSL格式化的,并且这些外围对象的CSS或者其他指定尺寸的值已经可以计算出视窗的尺寸了,则此时会使用外围对象的尺…
SVG和canvas中是一样的,都是使用标准的HTML/CSS中的颜色表示方法,这些颜色都可以用于fill和stroke属性.基本有下面这些定义颜色的方式:1. 颜色名字: 直接使用颜色名字red, blue, black...2. rgba/rgb值: 这个也很好理解,例如#ff0000,rgba(255,100,100,0.5).3. 十六进制值: 用十六进制定义的颜色,例如#ffffff.4. 渐变值:这个也与canvas中一样,支持两种渐变色:线性渐变,环形渐变.如下图所示: 5. 图案…
SVG中渲染文本 SVG的强大能力之一是它可以将文本控制到标准HTML页面不可能有的程度,而无须求助图像或其它插件.任何可以在形状或路径上执行的操作(如绘制或滤镜)都可以在文本上执行.尽管SVG的文本渲染如此强大,但是还是有一个不足之处:SVG不能执行自动换行.如果文本比允许空间长,则简单地将它切断.多数情况下,创建多行文本需要多个文本元素. 此外,可以使用 tspan 元素可以将文本元素分成几部分,允许每部分有各自的样式. 还有,在text元素中,空格的处理与HTML类似:换行和回车变成空格,…
基本形状 SVG提供了很多的基本形状,这些元素可以直接使用,这一点比canvas好多了.废话不说了,直接看例子,这个最直接:   <svg width="200" height="250">   <rect x="10" y="10" width="30" height="30" stroke="black" fill="transpare…
交互性      SVG拥有良好的用户交互性,例如:1. SVG能响应大部分的DOM2事件.2. SVG能通过cursor良好的捕捉用户鼠标的移动.3. 用户可以很方便的通过设置svg元素的zoomAndPan属性的值来实现缩放等效果.4. 用户可以很方便的把动画和事件结合起来,完成一些复杂的效果. 通过给SVG元素挂接事件,我们可以使用脚本语言方便的完成一些交互任务.SVG支持大部分的DOM2事件,例如:onfocusin, onfocusou, onclick, onmousedown, o…
使用脚本可以很方便的完成各种复杂的任务,也是完成动画和交互的一种主流方式.由于SVG是html的元素,所以支持普通的DOM操作,又由于SVG本质上是xml文档,所以也有一种特殊的DOM操作,大多称之为SVG DOM.当然了,由于目前IE不支持SVG,开发基于IE的SVG页面需要采用不同的方式.这部分的知识大家其实都很熟悉,下面只是简单的看一下. HTML页面中的DOM操作      DOM大家应该很熟悉了,这里先看一个小例子: <head>      <style>        …