`

W3CHINA_ORG讨论区

    博客分类:
  • svg
阅读更多
w3schools SVG教程

在W3 SCHOOLS上看到此教程,花了一天时间翻译,主要是借此机会学习,初次翻译,见笑!

一、Introduction to SVG-Svg初步

SVG is a language for describing 2D graphics and graphical applications in XML.

Svg 是一种基于xml语言的定义二维图形的应用程序。

What you should already know-你应该预先知道什么?

Before you continue, you should have some basic understanding of the following:

在继续学习之前,你应该确保你有以下知识基础:

HTML

Basic XML

If you want to study these subjects first, find the tutorials on our Home page.

如果你想先学习一下这些知识。请访问我们的主页。


What is SVG?                                                                           

什么是svg?

SVG stands for Scalable Vector Graphics

Svg指的是Scalable Vector Graphics (可伸缩向量图形)

SVG is used to define vector-based graphics for the Web

Svg用来定义面向web的向量图形。

SVG defines the graphics in XML format

Svg基于xml语言定义图形。

SVG graphics do NOT lose any quality if they are zoomed or resized

当你伸缩或重新设置图形大小时,svg图形不损失质量。

Every element and every attribute in SVG files can be animated

Svg里的每一个元素和属性都可以自定义。

SVG is a World Wide Web Consortium (W3C) recommendation

Svg是一个W3C推荐标准。

SVG integrates with other W3C standards such as the DOM and XSL

Svg可以和W3C的其他推荐标准结合使用。



SVG History & Advantages-SVG的历史和优点

SVG 1.1 became a W3C Recommendation in January 2003.

SVG 1.1在2003年1月成为了w3c的推荐标准

Sun Microsystems, Adobe, Apple, IBM, and Kodak are some of the well-known organizations that have been involved in defining SVG.

Sun Microsystems, Adobe, Apple, IBM, and Kodak是一些参与定义SVG的著名公司。

Advantages of using SVG over other image formats (like JPEG and GIF):

与其他图形格式(jgeg&gif)使用SVG的优点如下:

Ø         SVG files can be read and modified by a large range of tools (e.g. notepad)

Ø         SVG 文件可以被很多的工具(比如记事本)阅读和编辑。

Ø         SVG files are smaller and more compressible than JPEG and GIF images

Ø         SVG 文件比 JPEG和GIF更小压缩比更大。

Ø         SVG images are scalable

Ø         SVG图像是可压缩的。

Ø         SVG images can be printed with high quality at any resolution

Ø         SVG图像可以以任何分辨率高清晰打印。

Ø         SVG images are zoomable. Any part of the image can be zoomed without degradation

Ø         SVG图像是可缩放的。图像的任何部分都可以无损失缩放。

Ø         Text in SVG is selectable and searchable (excellent for making maps)

Ø         SVG里的文字是可供选择和搜索(制作地图的良好功能)

Ø         SVG works with Java technology

Ø         SVG可以和java技术共同工作

Ø         SVG is an open standard

Ø         SVG是一个开放标准

Ø         SVG files are pure XML

Ø         SVG文件是纯xml的。

The main competitor to SVG is Flash. The two have a lot of similar features. The biggest advantage SVG has over Flash is the compliance with other standards (e.g. XSL and the DOM). Flash relies on proprietary technology that is not open source.

svg的主要竞争对手是flash。两者又很多的相似特征。和flash相比的最大优点是与其他标准(比如XSL&DOM)的一致性。Flash基于的专利技术不是开放的。



The major drawback of SVG at the moment is that no browser fully supports SVG. However, the future of SVG seems bright: Mozilla and Microsoft plan to fully support SVG. Adobe GoLive 5 already supports SVG and the number of SVG editors are growing.

当前,svg的最大缺点是没有完全支持svg的浏览器。但是,svg的未来是非常光明的: Mozilla 和Microsoft计划完全支持svg。Adobe GoLive 5已经完全支持svg,svg编辑软件的数量也在扩大。



Look at the official W3C list of implementations of SVG



To view SVG files today, you will have to install a plug-in such as the Adobe SVG Viewer.

现在你必须安装类似the Adobe SVG Viewer的插件才能浏览svg文件。





[此贴子已经被admin于2006-4-9 22:26:11编辑过]


----------------------------------------------
交流提高呀!

svg技术交流: http://greaterthanme.blog.hexun.com/list.aspx?tag=svg
svg技术交流群:24785607
svg文件共享邮箱:svgcn@126.com  password:svg.net.cn

2006-4-8 19:42:00   鲜花(0)  鸡蛋(0)  

wanghai00   
 
 
  威望:4
  等级:大四(总算啃完XML规范了)
  文章:106
  积分:1069
  门派:XML.ORG.CN
  院校:(无权查看)
  注册:2005-10-1
           第2楼




因为不支持html代码,有部分没有发布出来,完整版本请参阅我的blog

----------------------------------------------
交流提高呀!

svg技术交流: http://greaterthanme.blog.hexun.com/list.aspx?tag=svg
svg技术交流群:24785607
svg文件共享邮箱:svgcn@126.com  password:svg.net.cn

2006-4-8 19:46:00   

wanghai00   
 
 
  威望:4
  等级:大四(总算啃完XML规范了)
  文章:106
  积分:1069
  门派:XML.ORG.CN
  院校:(无权查看)
  注册:2005-10-1
           第3楼




二、SVG Example-svg实例

SVG is written in XML.-svg是用xml书写的

The following example is an example of a simple SVG file. SVG files must be saved with an .svg extension:

下面的例子是一个svg的简单实例,svg文件必须存为扩展名为.svg。

<?xml version="1.0" standalone="no"?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"

"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg width="100%" height="100%" version="1.1"

xmlns="http://www.w3.org/2000/svg">

<circle cx="100" cy="50" r="40" stroke="black"

stroke-width="2" fill="red"/>

</svg>

Code explanation:-代码解释

The first line contains the XML declaration. Notice the standalone attribute! This attribute specifies whether the SVG file "stands alone", or contains a reference to an external file.
第一行包含了xml声明。注意standalone属性,这个属性规定本svg文件是独立的还是包含一个对外部文件的引用。

standalone="no" means that the SVG document has a reference to an external file - in this case, the DTD.

standalone="no"意味着本svg文档包含一个对外部文件的引用,比如说DTD文件。

The second and the third line refer to the external SVG DTD. The DTD is located at "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd". The DTD resides at the W3C and it contains all allowable SVG elements.

第二、三行指定外部的DTD。该DTD"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd",在W3C网站上,并包含所有可用的svg元素。

The SVG code begins with the <svg> element, which consists of the opening <svg> tag and the closing </svg> tag. This is the root element. The width and height attributes set the width and height of the SVG document. The version attribute defines the SVG version to be used and the xmlns attribute defines the SVG namespace.

Svg文档以根元素<svg>开始,包含开始标签<svg>和结束标签</svg>.width和height属性用来设置svg文档的宽和高。Version属性定义了svg的版本,xmlns属性定义了svg的名称空间。

The SVG <circle> element is used to create a circle. The cx and cy attributes define the x and y coordinates of the center of the circle. If cx and cy are omitted, the circle's center is set to (0, 0). The r attribute defines the radius of the circle.

<circle>元素用来划一个圆。cx 和 cy属性定义了圆中心点的x,y坐标。如果cx,cy省略,圆以(0,0)点为中心。r属性定义了圆的半径。

The stroke and stroke-width attributes control how the outline of a shape appears. We set the outline of the circle to a 2px wide, black "border".

Stroke 和stroke-width属性控制图形的外轮廓。我们给圆设置了一个宽2px的黑色边框。

The fill attribute refers to the color inside a shape. We set the fill color to red.

fill属性指出了图形的颜色。我们给圆设置了红色。

The closing </svg> tag closes the root SVG element and the document.

</svg>标签结束了svg根元素和本文档。

Note: All opening tags must have closing tags!

注意:所有开始标签必须有对应的结束标签。



----------------------------------------------
交流提高呀!

svg技术交流: http://greaterthanme.blog.hexun.com/list.aspx?tag=svg
svg技术交流群:24785607
svg文件共享邮箱:svgcn@126.com  password:svg.net.cn

2006-4-8 20:02:00   

wanghai00   
 
 
  威望:4
  等级:大四(总算啃完XML规范了)
  文章:106
  积分:1069
  门派:XML.ORG.CN
  院校:(无权查看)
  注册:2005-10-1
           第4楼




三、SVG In HTML Pages

SVG files can be embedded into HTML documents with the <embed> tag, the <object> tag, or the <iframe> tag.
svg文件可以运用<embed>,<object>或<iframe>标签包含进html文档中

Below you should see three different methods on how to embed SVG files into HTML pages.
下面你将看到svg包含进html文档的三种方法。

1.Using the <embed> Tag-用<embed>标签

The <embed> tag is supported in all major browsers, and allows scripting.
所有主流浏览器支持<embed>标签,允许使用脚本。

Note: The Adobe SVG Viewer recommends that you use the EMBED tag when embedding SVG in HTML pages! However, if you want to create valid XHTML, you cannot use <embed> - The <embed> tag is not listed in any HTML specification.
注意:The Adobe SVG Viewer推荐您使用<embed>标签来将svg包含进html文档!但是,当你要创建有效的xhtml文档的时候,你不能使用<embed>-任何一个html的推荐标准里都没有<embed>标签。

Syntax:-语法

<embed src="rect.svg" width="300" height="100"

type="image/svg+xml"

pluginspage="http://www.adobe.com/svg/viewer/install/" />

Note: The pluginspage attribute points to an URL for the plugin download.
注意:pluginspage属性指出了插件下载的地址。

Tip: Internet Explorer supports an additional attribute, wmode="transparent", that let the HTML page background shine through.
tip:ie浏览器支持一个附加的属性,wmode="transparent",用来使html背景透明。

2.Using the <object> Tag-用<object>标签

The <object> tag is an HTML4 standard tag and is supported in all newer browsers. The disadvantage is that it does not allow scripting.
<object>标签是html 4的标准标签,被所有新的浏览器支持。缺点是他不支持脚本。

Note: If you have installed the latest version of Adobe SVG Viewer, SVG files will not work when using the <object> tag (at least not in Internet Explorer)!
注意:如果你安装的最近版本的 Adobe SVG Viewer,运用<object>标签svg文件将不工作。

Syntax:-语法

<object data="rect.svg" width="300" height="100"

type="image/svg+xml"

codebase="http://www.adobe.com/svg/viewer/install/" />

Note: The codebase attribute points to an URL for the plugin download.
注意:codebase属性指出插件下载的地址。

3.Using the <iframe> Tag-用<iframe>标签

The <iframe> tag works in most browsers.
<iframe>标签可以在大部分的浏览器里工作

Syntax:-语法

<iframe src="rect.svg" width="300" height="100">

</iframe>

It would be great if we could add SVG elements directly into the HTML code, only by referring to the SVG namespace, like this:
如果我们可以运用svg命名空间,直接将svg元素添加到html里,那真是太棒了!如下:

<html

xmlns:svg="http://www.w3.org/2000/svg">

<body>

<p>This is an HTML paragraph</p>

<svg:svg width="300" height="100" version="1.1" >

<svg:circle cx="100" cy="50" r="40" stroke="black"

stroke-width="2" fill="red" />

</svg:svg>

</body>

</html>



----------------------------------------------
交流提高呀!

svg技术交流: http://greaterthanme.blog.hexun.com/list.aspx?tag=svg
svg技术交流群:24785607
svg文件共享邮箱:svgcn@126.com  password:svg.net.cn

2006-4-8 20:04:00   

wanghai00   
 
 
  威望:4
  等级:大四(总算啃完XML规范了)
  文章:106
  积分:1069
  门派:XML.ORG.CN
  院校:(无权查看)
  注册:2005-10-1
           第5楼




四、SVG <rect>

SVG has some predefined shape elements that can be used and manipulated by developers.

Svg有一些预定义的可以直接使用操作的图形元素

Rectangle <rect>

Circle <circle>

Ellipse <ellipse>

Line <line>

Polyline <polyline>

Polygon <polygon>

Path <path>


The following chapters will explain each element, starting with the rect element.

下面将详细介绍每一个元素,从rect开始。

The <rect> Tag

The <rect> tag is used to create a rectangle and variations of a rectangle shape.

<rect>用来生成矩形或矩形的变种。

To understand how this works, copy the following code into Notepad and save the file as "rect1.svg". Place the file in your Web directory:

为了理解 <rect>怎么工作,复制下面的代码到记事本,然后保存为rect1.svg到你的网页目录。

<?xml version="1.0" standalone="no"?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"

"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg width="100%" height="100%" version="1.1"

xmlns="http://www.w3.org/2000/svg">

<rect width="300" height="100"

style="fill:rgb(0,0,255);stroke-width:1;

stroke:rgb(0,0,0)"/>

</svg>

View example


Code explanation:代码解释

The width and height attributes of the rect element define the height and the width of the rectangle

Width和height属性指出举行的宽和高。

The style attribute is used to define CSS properties

style属性定义css属性

The CSS fill property defines the fill color of the rectangle (either an rgb value, a color name, or a hexadecimal value)

fill属性定义矩形填充的颜色(rgb值,颜色值,十六进制值)

The CSS stroke-width property defines the width of the border of the rectangle

stroke-width属性指定矩形填充线宽。

The CSS stroke property defines the color of the border of the rectangle

stroke属性指定矩形border颜色。

Let's look at another example that contains some new attributes:

再看一个带有新属性的例子

<?xml version="1.0" standalone="no"?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"

"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg width="100%" height="100%" version="1.1"

xmlns="http://www.w3.org/2000/svg">

<rect x="20" y="20" width="250" height="250"

style="fill:blue;stroke:pink;stroke-width:5;

fill-opacity:0.1;stroke-opacity:0.9"/>

</svg>

Code explanation:代码解释

The x attribute defines the left position of the rectangle (e.g. x="0" places the rectangle 0 pixels from the left of the browser window)

x属性定义矩形的左位置(例如 x="0"将矩形放在距window窗口左端0px处)

The y attribute defines the top position of the rectangle (e.g. y="0" places the rectangle 0 pixels from the top of the browser window)

y属性定义矩形距上端的位置(例如 y="0"将矩形放在距window窗口上部0px处)

The CSS fill-opacity property defines the opacity of the fill color (legal range: 0 to 1)

CSS fill-opacity 属性定义填充颜色的透明度(从0到1)

The CSS stroke-opacity property defines the opacity of the stroke color (legal range: 0 to 1)

CSS stroke-opacity属性定义描边颜色的透明度(从0到1)

Define the opacity for the whole element:

为整个元素定义元素

<?xml version="1.0" standalone="no"?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"

"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg width="100%" height="100%" version="1.1"

xmlns="http://www.w3.org/2000/svg">

<rect x="20" y="20" width="250" height="250"

style="fill:blue;stroke:pink;stroke-width:5;

opacity:0.9"/>

</svg>

Code explanation:代码解释

The CSS opacity property defines the opacity value for the whole element (legal range: 0 to 1)

CSS opacity属性定义整个元素的透明度(从0到1)

Last example, create a rectangle with rounded corners:

下一个例子,创建一个圆角矩形

<?xml version="1.0" standalone="no"?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"

"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg width="100%" height="100%" version="1.1"

xmlns="http://www.w3.org/2000/svg">

<rect x="20" y="20" rx="20" ry="20" width="250"

height="100" style="fill:red;stroke:black;

stroke-width:5;opacity:0.5"/>

</svg>

Code explanation:代码解释

The rx and the ry attributes rounds the corners of the rectangle

rx and ry属性定义举行的圆角



----------------------------------------------
交流提高呀!

svg技术交流: http://greaterthanme.blog.hexun.com/list.aspx?tag=svg
svg技术交流群:24785607
svg文件共享邮箱:svgcn@126.com  password:svg.net.cn

2006-4-8 20:07:00   

wanghai00   
 
 
  威望:4
  等级:大四(总算啃完XML规范了)
  文章:106
  积分:1069
  门派:XML.ORG.CN
  院校:(无权查看)
  注册:2005-10-1
           第6楼




五、SVG <circle>

The <circle> tag is used to create a circle.

<circle>属性用来创建一个圆

Copy the following code into Notepad and save the file as "circle1.svg". Place the file in your Web directory:

将下列代码复制进记事本,并保存成.svg,放在你的web目录。

<?xml version="1.0" standalone="no"?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"

"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg width="100%" height="100%" version="1.1"

xmlns="http://www.w3.org/2000/svg">

<circle cx="100" cy="50" r="40" stroke="black"

stroke-width="2" fill="red"/>

</svg>

Code explanation:代码解释

The cx and cy attributes define the x and y coordinates of the center of the circle. If cx and cy are omitted, the circle's center is set to (0, 0)
   cx and cy 属性定义圆心的x,y坐标,如果省略,在圆心为(0,0)

The r attribute defines the radius of the circle
r属性定义圆的半径


六、SVG <ellipse>

The <ellipse> tag is used to create an ellipse. An ellipse is closely related to a circle. The difference is that an ellipse has an x and a y radius that differs from each other, while a circle has equal x and y radius.

<elipse>标签用来创建一个椭圆。椭圆类似于圆.不同仅仅在于椭圆有下x,y两个值不同半径,而圆的x,y半径值相同。

Copy the following code into Notepad and save the file as "ellipse1.svg". Place the file in your Web directory:

复制下面代码到记事本,存为ellipse1.svg,放在你的web目录里。

<?xml version="1.0" standalone="no"?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"

"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg width="100%" height="100%" version="1.1"

xmlns="http://www.w3.org/2000/svg">

<ellipse cx="300" cy="150" rx="200" ry="80"

style="fill:rgb(200,100,50);

stroke:rgb(0,0,100);stroke-width:2"/>

</svg>

Code explanation:代码解释

The cx attribute defines the x coordinate of the center of the ellipse
cx指出椭圆的中心点的x坐标

The cy attribute defines the y coordinate of the center of the ellipse
cy指出椭圆的中心点的y坐标

The rx attribute defines the horizontal radius
    rx 指出椭圆的横向半径

The ry attribute defines the vertical radius
ry指出椭圆的纵向半径

The following example creates three ellipses on top of each other:

下面例子创建三个叠加的椭圆

<?xml version="1.0" standalone="no"?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"

"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg width="100%" height="100%" version="1.1"

xmlns="http://www.w3.org/2000/svg">

<ellipse cx="240" cy="100" rx="220" ry="30"

style="fill:purple"/>

<ellipse cx="220" cy="70" rx="190" ry="20"

style="fill:lime"/>

<ellipse cx="210" cy="45" rx="170" ry="15"

style="fill:yellow"/>

</svg>


The following example combines two ellipses (one yellow and one white):

下面例子将两个椭圆组合

<?xml version="1.0" standalone="no"?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"

"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg width="100%" height="100%" version="1.1"

xmlns="http://www.w3.org/2000/svg">

<ellipse cx="240" cy="100" rx="220" ry="30"

style="fill:yellow"/>

<ellipse cx="220" cy="100" rx="190" ry="20"

style="fill:white"/>

</svg>



----------------------------------------------
交流提高呀!

svg技术交流: http://greaterthanme.blog.hexun.com/list.aspx?tag=svg
svg技术交流群:24785607
svg文件共享邮箱:svgcn@126.com  password:svg.net.cn

2006-4-8 20:11:00   

wanghai00   
 
 
  威望:4
  等级:大四(总算啃完XML规范了)
  文章:106
  积分:1069
  门派:XML.ORG.CN
  院校:(无权查看)
  注册:2005-10-1
           第7楼




七、SVG <line>

The <line> tag is used to create a line.

<line>标签用来创建一条直线。

Copy the following code into Notepad and save the file as "line1.svg". Place the file in your Web directory:

复制下列代码到记事本,存成line1.svg,放在你的web目录下

<?xml version="1.0" standalone="no"?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"

"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg width="100%" height="100%" version="1.1"

xmlns="http://www.w3.org/2000/svg">

<line x1="0" y1="0" x2="300" y2="300"

style="stroke:rgb(99,99,99);stroke-width:2"/>

</svg>


Code explanation:代码解释

The x1 attribute defines the start of the line on the x-axis
x1指定起点的x坐标

The y1 attribute defines the start of the line on the y-axis
y1指定起点的y坐标

The x2 attribute defines the end of the line on the x-axis
x2指定终点的x坐标

The y2 attribute defines the end of the line on the y-axis
y2指定终点的y坐标

八、SVG <polygon>

The <polygon> tag is used to create a graphic that contains at least three sides.

<polygon>标签用来创建一个多于三个边的图形。

Copy the following code into Notepad and save the file as "polygon1.svg". Place the file in your Web directory:

父子下面代码倒记事本,存成polygon1.svg,放在你的web目录下

<?xml version="1.0" standalone="no"?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"

"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg width="100%" height="100%" version="1.1"

xmlns="http://www.w3.org/2000/svg">

<polygon points="220,100 300,210 170,250"

style="fill:#cccccc;

stroke:#000000;stroke-width:1"/>

</svg>



Code explanation:代码解释

The points attribute defines the x and y coordinates for each corner of the polygon
Points属性定义多边形每个角的x,y坐标

The following example creates a polygon with four sides:

下面例子创建一个四边形

<?xml version="1.0" standalone="no"?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"

"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg width="100%" height="100%" version="1.1"

xmlns="http://www.w3.org/2000/svg">

<polygon points="220,100 300,210 170,250 123,234"

style="fill:#cccccc;

stroke:#000000;stroke-width:1"/>

</svg>

九、SVG <polyline>

The <polyline> tag is used to create any shape that consists of only straight lines.

<polyline>用来创建由任意直线组成的图形

Copy the following code into Notepad and save the file as "polyline1.svg". Place the file in your Web directory:

复制下列代码到记事本,存成polyline1.svg,放在你的web目录下

<?xml version="1.0" standalone="no"?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"

"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg width="100%" height="100%" version="1.1"

xmlns="http://www.w3.org/2000/svg">

<polyline points="0,0 0,20 20,20 20,40 40,40 40,60"

style="fill:white;stroke:red;stroke-width:2"/>

</svg>

十、SVG <path>

The <path> tag is used to define a path.
<path> 标签用来创建一条路径

The following commands are available for path data:

M = moveto

L = lineto

H = horizontal lineto

V = vertical lineto

C = curveto

S = smooth curveto

Q = quadratic Belzier curve

T = smooth quadratic Belzier curveto

A = elliptical Arc

Z = closepath

Note: All of the commands above can also be expressed with lower letters. Capital letters means absolutely positioned, lower cases means relatively positioned.

注意:上面所有的命令也可以表示成小写形式。大写字母表示绝对位置,小写字母表示相对位置。

Copy the following code into Notepad and save the file as "path1.svg". Place the file in your Web directory:

复制下面代码到记事本,存成path1.svg,放到你的web目录下。

<?xml version="1.0" standalone="no"?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"

"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg width="100%" height="100%" version="1.1"

xmlns="http://www.w3.org/2000/svg">



----------------------------------------------
交流提高呀!

svg技术交流: http://greaterthanme.blog.hexun.com/list.aspx?tag=svg
svg技术交流群:24785607
svg文件共享邮箱:svgcn@126.com  password:svg.net.cn

2006-4-8 20:14:00   

wanghai00   
 
 
  威望:4
  等级:大四(总算啃完XML规范了)
  文章:106
  积分:1069
  门派:XML.ORG.CN
  院校:(无权查看)
  注册:2005-10-1
           第8楼




十一、SVG Filters


SVG Filters is used to add special effects to shapes and text.
svg滤镜用来给图形和文字添加特殊效果

The available filters in SVG are:
可用的滤镜有以下这些:

feBlend
feColorMatrix
feComponentTransfer
feComposite
feConvolveMatrix
feDiffuseLighting
feDisplacementMap
feFlood
feGaussianBlur
feImage
feMerge
feMorphology
feOffset
feSpecularLighting
feTile
feTurbulence
feDistantLight
fePointLight
feSpotLight
You can use multiple filters on each SVG element!
  你可以在每个元素里多重运用滤镜。






SVG Gaussian Blur


An SVG Filter must be defined within a <defs> tag.
一个svg滤镜必须在<defs>标签里定义。

Gaussian Blur-高斯模糊

The <filter> tag is used to define an SVG filter. The <filter> tag has a required id attribute which identifies which filter will be applied to the graphic.
<filter>标签用来定义一个svg滤镜。<filter>标签有一个必须的id属性来唯一标识该滤镜应用到图像中。

The <filter> tag must be nested within a <defs> tag. The <defs> tag is short for definitions and it allows definition of special elements such as filter.
<filter>标签必须嵌套到<defs>标签里,<defs>标签是definitions的简写,允许特殊标签的定义。如filter

Copy the following code into Notepad and save the file as "filter1.svg". Place the file in your Web directory:
复制下面代码到纪事本,存为filter1.svg,放到你的web目录下

<?xml version="1.0" standalone="no"?>


<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"


"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">


<svg width="100%" height="100%" version="1.1"xmlns="http://www.w3.org/2000/svg">

<defs>

<filter id="Gaussian_Blur">

<feGaussianBlur in="SourceGraphic" stdDeviation="3" />

</filter>

</defs>

<ellipse cx="200" cy="150" rx="70" ry="40"style="fill:#ff0000;stroke:#000000;
stroke-width:2;filter:url(#Gaussian_Blur)"/>

</svg>

Code explanation:代码解释

The id attribute of the <filter> tag defines a unique name for the filter (the same filter can be used by many elements in the document)
<filter>的id属性定义filter的唯一标识名(滤镜可以文档中的多个元素使用)

The filter:url(#Gaussian_Blur) property is used to link an element to a filter. The # character must be used when linking to the filters id
filter:url(#Gaussian_Blur)属性用来给元素链接滤镜。当链接到filters的id属性时,#是必须的。

The filter effect is defined with the <feGaussianBlur> tag. The fe prefix is used for all filters
滤镜效果是在<feGaussianBlur>标签里定义的。fe前缀对所有滤镜有用

The stdDeviation attribute of the <feGaussianBlur> tag defines the amount of the blur
<feGaussianBlur>stdDeviation属性用来定义blur的值

The in="SourceGraphic" part defines that the effect is created from the whole image
in="SourceGraphic" 定义本效果的输入源是整个图像

Another example with a different stdDeviation:
不同blur值得另一个例子

<?xml version="1.0" standalone="no"?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"

"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg width="100%" height="100%" version="1.1"

xmlns="http://www.w3.org/2000/svg">

<defs>

<filter id="Gaussian_Blur">

<feGaussianBlur in="SourceGraphic" stdDeviation="20"/>

</filter>

</defs>

<ellipse cx="200" cy="150" rx="70" ry="40"
style="fill:#ff0000;stroke:#000000;
stroke-width:2;filter:url(#Gaussian_Blur)"/>

</svg>

十二、SVG Gradients

An SVG Gradient must be defined within a <defs> tag.

一个svg渐变必须在<defs>标签里定义

SVG Gradients
svg渐变

A gradient is a smooth transition from one color to another. In addition, several color transitions can be applied to the same element.
渐变是自一种颜色到另一种颜色的逐渐过渡。另外,多个颜色渐变可以应用到相同的元素上。

There are two main types of gradients in SVG:
有两种形式的渐变:

Linear Gradients

Radial Gradients

Linear Gradients线性渐变

The <linearGradient> tag is used to define an SVG linear gradient.
<linearGradient>标签用来定义一个svg线性渐变

The <linearGradient> tag must be nested within a <defs> tag. The <defs> tag is short for definitions and it allows definition of special elements such as gradients.

<linearGradient>标签必须嵌套在<defs>标签里。<defs>标签是definitions的简写,允许特殊标签的定义,比如gradients。

Linear gradients can be defined as horizontal, vertical or angular gradients:
线性渐变可以被定义为,水平,垂直,角形渐变。

Horizontal gradients are created when y1 and y2 are equal and x1 and x2 differ
当y1≠y2,x1=x2时,产生水平渐变

Vertical gradients are created when x1 and x2 are equal and y1 and y2 differ
当x1≠x2,y1=y2时,产生垂直渐变

Angular gradients are created when x1 and x2 differ and y1 and y2 differ
当y1≠y2,x1≠x2时,产生角形渐变

Copy the following code into Notepad and save the file as "linear1.svg". Place the file in your Web directory:
复制下列代码到记事本,保存为linear1.svg,放在你的web目录下。

<?xml version="1.0" standalone="no"?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"

"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg width="100%" height="100%" version="1.1"xmlns="http://www.w3.org/2000/svg">

<defs>

<linearGradient id="orange_red" x1="0%" y1="0%" x2="100%" y2="0%">

<stop offset="0%" style="stop-color:rgb(255,255,0);stop-opacity:1"/>

<stop offset="100%" style="stop-color:rgb(255,0,0);stop-opacity:1"/>

</linearGradient>

</defs>

<ellipse cx="200" cy="190" rx="85" ry="55"style="fill:url(#orange_red)"/>

</svg>

Code explanation:代码解释

The id attribute of the <linearGradient> tag defines a unique name for the gradient
<linearGradient>标签的id属性定义渐变的唯一标识名。

The fill:url(#orange_red) property links the ellipse element to the gradient
fill:url(#orange_red) 属性给椭圆链接渐变

The x1, x2, y1,y2 attributes of the <linearGradient> tag define the starting and ending position of the gradient
<linearGradient>标签的x1,x2,y1,y2属性用来定义渐变的首尾位置

The color range for a gradient can be composed of two or more colors. Each color is specified with a <stop> tag. The offset attribute is used to define where the gradient color begin and end
渐变颜色范围可以由两种或多种颜色组成。每一中颜色由一个<stop>标签描述。Offset属性用来定义渐变首尾的颜色。


Another example:另一个例子

<?xml version="1.0" standalone="no"?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"

"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg width="100%" height="100%" version="1.1"

xmlns="http://www.w3.org/2000/svg">

<defs>

<linearGradient id="orange_red" x1="0%" y1="0%" x2="0%" y2="100%">

<stop offset="0%" style="stop-color:rgb(255,255,0);stop-opacity:1"/>

<stop offset="100%" style="stop-color:rgb(255,0,0);stop-opacity:1"/>

</linearGradient>

</defs>

<ellipse cx="200" cy="190" rx="85" ry="55"


style="fill:url(#orange_red)"/>

</svg>

Radial Gradients-径向渐变

The <radialGradient> tag is used to define an SVG radial gradient.
<radialGradient>标签用来定义一个svg径向渐变。

The <radialGradient> tag must be nested within a <defs> tag. The <defs> tag is short for definitions and it allows definition of special elements such as gradients.
<radialGradient>标签必须嵌套在<defs>标签里。<defs>标签是definitions的简写,允许特殊标签的定义,比如gradients。

Copy the following code into Notepad and save the file as "radial1.svg". Place the file in your Web directory:
复制下列代码到记事本,保存为linear1.svg,放在你的web目录下。

<?xml version="1.0" standalone="no"?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"

"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg width="100%" height="100%" version="1.1"

xmlns="http://www.w3.org/2000/svg">

<defs>

<radialGradient id="grey_blue" cx="50%" cy="50%" r="50%"fx="50%" fy="50%">

<stop offset="0%" style="stop-color:rgb(200,200,200);stop-opacity:0"/>

<stop offset="100%" style="stop-color:rgb(0,0,255);stop-opacity:1"/>

</radialGradient>

</defs>

<ellipse cx="230" cy="200" rx="110" ry="100"style="fill:url(#grey_blue)"/>

</svg>

Code explanation:代码解释

The id attribute of the <radialGradient> tag defines a unique name for the gradient
<radialGradient>的id属性定义了渐变的唯一标志名

The fill:url(#grey_blue) property links the ellipse element to the gradient
fill:url(#gray_blue) 属性给椭圆链接渐变

The cx, cy and r attributes define the outermost circle and the fx and fy define the innermost circle
cx,cy,r 属性定义外圆,fx,fy定义内圆

The color range for a gradient can be composed of two or more colors. Each color is specified with a <stop> tag. The offset attribute is used to define where the gradient color begin and end
渐变颜色范围可以由两种或多种颜色组成。每一中颜色由一个<stop>标签描述。Offset属性用来定义渐变首尾的颜色。

Another example:另一个例子

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg">

<defs>
<radialGradient id="grey_blue" cx="20%" cy="40%" r="50%" fx="50%" fy="50%">
<stop offset="0%" style="stop-color:rgb(200,200,200);stop-opacity:0"/>
<stop offset="100%" style="stop-color:rgb(0,0,255);stop-opacity:1"/>
</radialGradient>
</defs>
<ellipse cx="230" cy="200" rx="110" ry="100"style="fill:url(#grey_blue)"/>

</svg>



----------------------------------------------
交流提高呀!

svg技术交流: http://greaterthanme.blog.hexun.com/list.aspx?tag=svg
svg技术交流群:24785607
svg文件共享邮箱:svgcn@126.com  password:svg.net.cn

分享到:
评论

相关推荐

    w3c 生成xml 换行实例

    首先,需要导入必要的包,包括 java.io、javax.xml.parsers、javax.xml.transform 和 org.w3c.dom 等。这些包提供了 XML 文档的解析和生成功能。 接下来,创建一个名为 XMLHandler 的类,该类中包含一个名为 create...

    owl_Web本体语言指南.docx

    我们感谢所有参与翻译工作的译者和帮助者,我们也感谢 W3CHINA.ORG 开放翻译计划(OTP)为本次翻译计划提供翻译与讨论平台。 本指南旨在为中文用户提供一个方便的本体语言指南,旨在帮助用户了解 OWL 本体语言的...

    XML_1.0_标准中文版_PDF版.rar

    在压缩包中的"更多资料、软件、文章,请访问计算机科学论坛(www.IEEE.org.cn).txt"、"更多资料、软件、文章,请访问W3China论坛(bbs.W3China.org).txt"和"更多资料、软件、文章,请访问中国XML论坛(bbs.XML.org...

    网页设计客户端技术 推荐学习网站汇总

    8. **中国万维网联盟** (http://www.w3china.org/) - 该组织致力于推广W3C技术,提供有关Web未来发展和技术趋势的信息。 9. **万维网联盟中国办事处** (http://www.chinaw3c.org/) - 作为W3C在中国的代表,该办事...

    张孝祥JavaScript学习阶段性总结(2)–(X)HTML学习

    HTML版本的制定和规范是由W3C组织进行的,W3C组织的网址:www.w3.org *相关网站介绍 http://w3china.org/ 它是一个致力于促进W3C技术的广泛应用的中文网站,EN文不好的可以去那看看,有不少翻译后的资料。...

    China

    W3Schools(www.w3schools.com)提供了丰富的交互式教程,MDN Web Docs(developer.mozilla.org)提供了详尽的开发者指南。此外,参与开源项目或建立个人网站是提升HTML技能的好方法。 【总结】 HTML作为网页制作...

    万年历的代码

    DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt; &lt;html &lt;head&gt; &lt;meta http-equiv="Content-Type" content="text/html; ...

    OWLViz4U-开源

    OWLViz4U(用于Unicode的OWLViz)是OWLViz的扩展,用于支持基于Unicode的本体,它是与Protege OWL插件一起使用的OWL可视化工具。 OWLViz4U是W3China开源项目(http://www.w3china.org)的一部分。

    RDF推荐标准[网上资料整理].pdf

    中文版则由TransWiki-W3CHINA.ORG开放翻译计划(OTP)完成翻译。 - **版权信息**:文档版权归属于W3C组织,具体细节可参考W3C官网上的版权文档。 - **翻译团队介绍**:本中文版由多位志愿者翻译完成,每个章节都...

    OWL Web本体语言 指南

    - **翻译项目**:如文中提到的TransWiki-W3CHINA.ORG开放翻译计划,旨在将关键的技术文档翻译成中文,以便更多中文读者能够了解和使用。 - **国际合作**:W3C(World Wide Web Consortium)等国际组织在制定标准和...

    java好网地址

    **CN OUG (China Oracle User Group)** - www.cnoug.org CN OUG聚焦于Oracle数据库及相关技术,对Java开发者而言,理解Oracle数据库对于处理后端数据至关重要。 #### 7. **UML China** - www.umlchina.com UML...

    中国最全SVG地图

    例如:&lt;?xml version="1.0" encoding="UTF-8" standalone="no"?&gt;&lt;!-- Generator: Adobe Illustrator 18.0.0, SVG Export ... SVG Version: 6.00 Build 0) --&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink=...

    XML中显示HTML的小技巧

    [CDATA[&lt;img border="0" src="images/w3china_logo.gif"&gt;]]&gt; ``` 如果我们直接使用`&lt;xsl:value-of select="root/date"&gt;`来进行转换,则最终结果中显示的将是HTML代码本身而不是预期的图片。这是因为默认情况下,...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    W3C组织正在研究一种名为RDF(Resource Description Framework)的metadata处理方法,可以自动交换信息,W3C宣称,使用RDF配合数字签名,将使网络中存在"真实可信"的电子商务。 六.显示 单独用XMl不能显示页面,...

    多年来积累的学习网站

    23. **PMI(中国)** (http://china.pmi.org/):全球项目管理的专业组织,提供项目管理相关的认证和资源。 24. **E书吧** (http://www.eshuba.com/):免费电子书下载平台,包含大量IT类书籍。 25. **UMLChina** ...

    maven基础知识

    &lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=...

    java调用Rest api 设置经典Linux 虚拟机的实例启停1

    String requestBody = "&lt;Operation xmlns=\"http://schemas.microsoft.com/windowsazure\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"&gt;&lt;Name&gt;Start&lt;/Name&gt;&lt;/Operation&gt;"; try (DataOutputStream wr...

Global site tag (gtag.js) - Google Analytics