`
lib
  • 浏览: 136024 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Raphael学习笔记(3)--绘图(路径【直线】)

阅读更多

 

1、路径简介

 

Paper.path(pathString):绘制路径;

参数含义:

pathString:描述路径的字符串

 

下面详细描述一下路径字符串的内容和书写风格。

路径由2部分组成:命令和坐标。

(1)命令:单个大(小)写字母。大写字母表示绝对坐标,小写字母表示相对坐标;

(2)坐标:一个或多个数字。多个数字之间使用逗号或者空格隔开;

(3)命令和坐标之间可以有空格,也可以省略空格;

 

移动坐标 M(m) moveto (x y)+

结束路径 Z(z) closepath (none)

直线 L(l) lineto (x y)+

水平直线 H(h) horizontal lineto x+

竖直直线 V(v) vertical lineto y+

3次贝塞尔曲线 C(c) curveto (x1 y1 x2 y2 x y)+

平滑3次贝塞尔曲线 S(s) smooth curveto (x2 y2 x y)+

2次贝塞尔曲线 Q(q) quadratic Bézier curveto (x1 y1 x y)+

平滑2次贝塞尔曲线 T(t) smooth quadratic Bézier curveto (x y)+

椭圆曲线 A(a) elliptical arc (rx ry x-axis-rotation large-arc-flag sweep-flag x y)+

 

绘制光滑的2次、3次贝塞尔曲线需要注意:

(1)后一段曲线的起点必须是前一段曲线的终点;

(2)前后2段曲线必须对称;

 

关于贝赛尔曲线的知识,可以参考下面的文章:canvas中的贝赛尔曲线

 

2、绘图实例

 

下面让我们看看代码的书写:

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
	<script type="text/javascript" src="js/raphael.js"></script>
	<script type="text/javascript" src="js/jquery-1.7.2.js"></script>

  	<style type="text/css">
		.wraper {
			position: relative;
			float: left;
			width: 400px;
			height: 400px;
			margin-left: 10px;
			margin-top: 10px;
			border: 1px solid orange;
		}
  	</style>
	<script type="text/javascript">
		$(document).ready(function(){
			var raphael = new Raphael('raphael_1',400,400);

			//绘制路径(三角形)
			raphael.path('M 160,100 L270,130 L200,170 z');
			//绘制路径(T型)
			raphael.path('M 50,190 H80 V220 H110 V250 H20 V220 H50 z');

		});
		
	</script>
  </head>	
  
  <body>
	
	<div id="raphael_1" class="wraper"></div>

  </body>
</html>

 实现的效果:


 

  • 大小: 1008 Bytes
分享到:
评论

相关推荐

    Raphael学习笔记

    根据提供的文件信息,可以看出这是一份关于Raphael JavaScript库的学习笔记。Raphael 是一个非常强大的JavaScript库,用于在Web浏览器中绘制矢量图形。它基于SVG(可缩放矢量图形)标准,并提供了丰富的API来简化...

    Raphael-Radar-master

    3. **路径绘制**:Raphael.js通过`Paper.path()`方法来绘制图形路径。在雷达图中,你需要计算出每个点的坐标,然后连接这些点形成一个多边形。每个轴上的点可以通过角度和半径计算得出。 4. **填充与描边**:为了使...

    raphael-min.js

    raphael-min.js

    raphael-uncompressed.js

    raphael-uncompressed.jsraphael-uncompressed.jsraphael-uncompressed.jsraphael-uncompressed.jsraphael-uncompressed.jsraphael-uncompressed.js

    raphael-min_js_

    通过调用`Raphael(name, width, height)`函数,我们可以指定一个DOM元素ID(name)以及绘图区域的宽度和高度。例如: ```javascript var paper = Raphael('canvas', 640, 480); ``` 在这个绘图区域上,我们可以创建...

    Raphael 参考文档《Learning Raphael JS Vector Graphics》

    - 压缩包中的`[Packt Publishing] Learning Raphael JS Vector Graphics.pdf`是一本详细的学习指南,包含了丰富的示例和教程,可以帮助你深入理解和掌握Raphael的用法。 - `demos`目录下的文件提供了实际的代码...

    raphael-svg-import-classic:将SVG文件导入Raphael

    Raphael矢量库的扩展。 它使Raphael能够导入原始SVG数据。前叉音符这是的分支。 当原始raphael-svg-import达到0.0.3时,引入了一个重大的向后不兼容更改。 它没有解析SVG文档,而是使用正则表达式。 由于以下几个...

    前端项目-raphael.zip

    5. **图形路径**:Raphael 支持定义和绘制复杂的路径,这是创建自定义形状和图标的关键。 6. **文本处理**:在矢量图形中添加和格式化文本也是 Raphael 的强项,可以调整字体、大小、对齐方式等。 **在前端项目中...

    raphael-scala-js:Raphael.js的Scala.js绑定

    Raphael-Scala-js Raphael.js的Scala.js绑定 要将Raphael-Scala-js添加到您的Scala.js项目中,请将其包含在build.sbt中 resolvers + = " Sonatype snapshots " at " ...

    raphaeljs_starter

    通过这些实例,读者可以深入理解RaphaelJS的功能,并学习到如何将其应用于实际项目中。 #### 技术细节与代码实践 《raphaeljs_starter》不仅介绍了RaphaelJS的基本概念,还提供了详尽的代码实践指导,包括如何设置...

    Raphael.JSON Raphael.Export Raphael.FreeTransform raphael.serialize

    3. **Raphael.FreeTransform** Raphael.FreeTransform是一个插件,它为Raphael图形对象提供了自由变换的能力。这意味着用户可以拖动、旋转、缩放、倾斜图形,就像在专业图形编辑软件中一样。这个功能极大地增强了...

    0001-Raphael-Shopping-Cart-Vanilla-Challenge:Carrinho de Compras em Vanilla Javascript

    在这个“Raphael-Shopping-Cart-Vanilla-Challenge”中,学习者不仅能提升JavaScript基础,还能增强对前端开发中用户交互和数据管理的理解。通过实践,开发者能够掌握纯JavaScript实现复杂功能的能力,这对未来的...

    raphael.js绘制流程图

    接着,定义一个SVG或VML(在不支持SVG的老版浏览器中使用)的容器,这个容器将作为绘图区域。 以下是一个简单的流程图绘制步骤: 1. **创建Raphaël画布**:使用`Raphael('container_id', width, height)`创建一个...

    react-raphael-webpack-es6:使用React,Raphael.js,Webpack和ES6进行项目设置

    react-raphael-webpack-es6 与React,Raphael.js,Webpak和ES6一起整理了项目设置。 目的是将Raphael.js与React结合使用,看看它是好还是完全怪异。

    raphael web绘图工具

    2. **路径操作**:Raphaël允许创建和操作SVG路径,这使得可以绘制更复杂、自由形态的图形。 3. **颜色和渐变**:它提供了丰富的颜色选择和渐变处理,包括线性渐变和径向渐变。 4. **文本处理**:Raphaël支持在...

    raphael中文帮助文档(API).chm

    raphael中文帮助文档(API)chm文档,因为在网上没有找到好的离线版的,都是在线的,所以自己根据在线的生成了一个chm帮助文档,下载了,绝对不会让你失望。

    raphael画流程图

    接着,你可以使用`Raphael paper`对象在这个区域内进行绘图,例如: ```javascript var paper = Raphael('绘图区ID', 宽度, 高度); ``` 流程图中的基本图形可以通过Raphaël的构造函数创建,比如`rect`、`ellipse`...

    raphael 1.5.2

    Raphaël is a small JavaScript library that should simplify your work with vector graphics on the web. If you want to create your own specific chart or image crop and rotate widget, for example, you ...

    raphael 简单绘图

    这个“raphael 简单绘图”教程可能涵盖了从基础到进阶的Raphaël使用方法,特别关注如何用它来绘制流程图。 首先,让我们深入了解一下Raphaël的基本概念。Raphaël通过创建一个“paper”对象来初始化画布,这相当...

    raphael-socket.io-express-mongoose:一个很酷的演示 Web 应用程序,用于展示 Node.js、Raphaeljs、socket.io、Express.js、Mongoose 和 MongoDB 的集成

    #raphael-socket.io-express-mongoose 展示 [Node.js]( ), [Raphael.js]( ), [Socket .io]( ), [Express.js]( ), [Mongoose.js]( ) 和 [MongoDB]( ) 集成 需要 MongoDB 要正确运行 Web 应用程序,您需要在系统中...

Global site tag (gtag.js) - Google Analytics