• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >XML/XSLT > 编写SVG布置画布和坐标系统以及视窗的方法

编写SVG布置画布和坐标系统以及视窗的方法

作者:彦子 字体:[增加 减小] 来源:互联网 时间:2017-08-06

本文主要包含SVG,画布,坐标,视窗等相关知识,彦子 希望在学习及工作中可以帮助到您

比喻

想象一个无穷大的画布,你可以在画布上的任何地方绘制你想要的任何内容,你也可以以任何你想要的尺寸来绘制。这就是SVG画布。

现在接着想象,有人在你的画布正前方建立了一堵同样的无穷大的墙,墙的宽度和高度也是无限延伸的,把画布全都挡住了。

因为墙都是直接放在画布前面的,所以我们无法看到画布上的内容。但是建墙的人很好,帮我们开了一扇窗户,甚至还给了我们设置这扇窗户大小尺寸的能力。这扇窗户就是SVG视窗。

墙的筑造者并没有在这里停住。他还给我们留下了工具,我们可以用它来移动画布,决定要将画布的哪部分显示在窗口区域,还可以决定要显示的区域的大小。这些工具在SVG元素中是以属性的形式(viewBox和preserveAspectRatio)表现出来的。

我会在接下来的两周讲解这些属性。今天我想将内容集中在画布、墙、视窗上,先从它们使用的坐标系统讲起:
SVG坐标系统

虽然SVG和CSS盒模型的表现形式不一样,但是它们的坐标系统的工作方式是相同的。

所有SVG坐标系的起点(0,0)都是在父元素的左上角,它们的父元素可以是body元素、div元素、或其它的容器。

当你创建了一个新的SVG元素,你也就创建了一个新的坐标系统,即无穷大的SVG画布。起点可能是和父元素的左上角对齐,但是画布在所有方向无限延伸的。x轴的正方向是向右,y轴的正方向是向下。两个坐标轴的负方向也会向左边和上边延伸。

关于SVG有一点需要明白的就是多坐标系统的同时使用。每次你创建一个新的SVG元素,就相当于在它的坐标空间创建了一个新的画布,同时也创建了一个视窗。

每一对画布和视窗的坐标系统都是默认对齐的。它们看起来就像是在同一个系统内,但其实并不是。正如我们接下来要看的,你可以改变它们相互对齐的方式。

在实际中,你在无穷大的画布上创建的元素是放置在画布的原点附近的,但是理论上,它们是可以放在任何地方的。你可以创建一个圆,然后把它放在原点右边四十亿像素远的地方,没人阻止你这样做。

理论上,窗口也可以是接近无穷大的,你可以设置你想要的任何尺寸。但是,你只有固定了窗口的尺寸,它才可以是固定大小的,而且你一旦设置了尺寸,坐标系统将会在空间上保持这个大小。

用户代理程序(即浏览器)会默认对齐这两个坐标系统的原点和坐标轴,但是你可以根据自己的需要改变这种对齐方式。

这两个系统可以设置不同的单位。可以把一个设置为像素,另一个设置为毫米、picas、英寸、点、ems,或者其他任何你想要的单位。百分比%是例外,它不能在这里使用。

再次记住,这两个坐标系统,一个是作用在无穷大的画布上的,另一个是作用于固定窗口的。
SVG视窗

每次你创建了一个新的SVG元素,你也就创建了一个新的SVG视窗。视窗的大小等于你为SVG元素设置的宽度和高度。

  1. <svg width="600" height="300" style="outline: 5px solid #630">   
  2.   <rect width="200" height="100" fill="#f00" />   
  3. </svg>  

这里,我创建了一个600px宽,300px高的视窗。在视窗内我创建了一个200x100px的红色矩形。因为我没有指定单位,所以默认情况下会使用像素作为单位。因为这和我平时的设置是一样的,所以我倾向于不要指定单位,这样也比较快捷。

为了能够看到视窗的边界,我还为<svg>元素添加了一个outline。这是代码生成的结果。
2015813183133933.jpg (664×334)

你可以看到一个5px粗的棕色边框包围着一块宽为600px、高为300px的区域。边框内的内容就是视窗。

视窗内独立出来一个宽为200px、高为100px的红色矩形。默认情况下矩形的左上角是放在SVG画布的原点,和视窗的原点对齐。

我有个问题是,如果你没有为视窗设置宽和高,它的尺寸应该是怎样的呢?我没有找到明确的答案。这是由每个用户代理程序(浏览器)决定的,但是好像一般默认是300px和150px。但是,我不建议是视窗按照默认的尺寸显示,最好还是按你自己的需要来设置尺寸吧。
移动画布上的SVG元素

你可以通过给矩形设置x值和y值,改变它在SVG画布上的位置。这里我把x值和y值都设置为10px,你可以看到矩形离开了视窗左上角的位置。

  1. <svg width="600" height="300" style="outline: 5px solid #630>  
  2.   <rect x="10" y="10" width="200" height="100" fill="#f00" />  
  3. </svg>  

2015813183156339.jpg (654×354)

用这种方法改变x和y坐标的值,就相当于移动了SVG画布上绘制的对象。画布本身没有移动,视窗也没有移动。我只是在画布上的另一个位置绘制了一个同样的红色矩形。

你也可以画一个部分超出了视窗边界的矩形。

  1. <svg width="600" height="300" style="outline: 5px solid #630>  
  2.   <rect x="-100" y="-50" width="200" height="100" fill=

您可能想查找下面的文章:

  • 编写SVG布置画布和坐标系统以及视窗的方法
  • XML模式:FIXML和SVG

相关文章

  • 2017-08-06了解WEB页面工具语言XML(四)应用分类
  • 2017-08-06WAP教程(1):WAP 简介-XML/XSLT
  • 2017-08-06解析XML对代码中的空白处理
  • 2017-08-06历数Firefox2.0对XML处理的改进
  • 2017-08-06百度新闻开放协议XML文档制作方法简述
  • 2017-08-06XML基础:什么是XML?
  • 2017-08-06用XML将机器内码转换为人们容易理解的信息
  • 2017-08-06WAP教程(4):WML 链接和图像-XML/XSLT
  • 2017-08-06XML模式相关常用的缩写词
  • 2017-08-06WAP教程(9):WML 实例-XML/XSLT

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • 了解WEB页面工具语言XML(三)支持工具
    • XML教程:通过一个例子来学习XML的语法
    • 了解WEB页面工具语言XML(一)产生背景
    • 了解WEB页面工具语言XML(二)定义
    • XML入门教程:分析XM
    • WAP教程(3):WML 格式化-XML/XSLT
    • 简单了解XML中的处理指令
    • 详解XML编程中的模式定义XSD
    • 学习XML关于图像超链接的制作
    • XML与Web服务和SOA有何关联?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有