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

Raphael学习笔记(4)--绘图(路径【贝塞尔曲线】)

阅读更多

贝塞尔曲线的基础知识

 

其它的什么都不说了,直接上代码:

 

 

<!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_2 = new Raphael('raphael_2',400,400);

			//绘制曲线的起止点和控制点
			//绘制2次贝赛尔曲线
			raphael_2.path('M20,120 L100,10 L180,90');
			raphael_2.path('M20,120 Q100,10 180,90').attr('stroke','red');

			//绘制曲线的起止点和控制点
			//绘制2次贝赛尔曲线(第一个是正常绘制,第二个光滑连接)
			raphael_2.path('M20,370 L120,160 L200,220 L280,280 L380,70');
			raphael_2.path('M20,370 Q120,160 200,220 T380,70').attr('stroke','red');

			var raphael_3 = new Raphael('raphael_3',400,400);

			//绘制曲线的起止点和控制点
			//绘制3次贝赛尔曲线
			raphael_3.path('M20,20 L50,80 L150,160 L180,40');
			raphael_3.path('M20,20 C50,80 150,160 180,40').attr('stroke','red');

			//绘制曲线的起止点和控制点
			//绘制3次贝赛尔曲线
			raphael_3.path('M240,180 L200,100 L380,20 L350,160');
			raphael_3.path('M240,180 C200,100 380,20 350,160').attr('stroke','red');

			//绘制曲线的起止点和控制点
			//绘制3次贝赛尔曲线(第一个是正常绘制,第二个光滑连接)
			raphael_3.path('M20,370 L40,270 L100,220 L180,280 L260,340 L320,290 L340,190');
			raphael_3.path('M20,370 C40,270 100,220 180,280 S320,290 340,190').attr('stroke','red');


		});
		
	</script>
  </head>	
  
  <body>
	
	<div id="raphael_2" class="wraper"></div>
	<div id="raphael_3" class="wraper"></div>
	<br/>

  </body>
</html>

 

2次贝塞尔的效果

3次贝塞尔的效果


 

 

  • 大小: 12 KB
  • 大小: 14.7 KB
分享到:
评论

相关推荐

    Raphael学习笔记

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

    Raphael-Radar-master

    《Raphael-Radar-master:基于Raphael.js的雷达图实现详解》 Raphael-Radar-master 是一个开源项目,源自GitHub仓库Empact/Raphael-Radar,它主要提供了使用Raphael.js库来创建雷达图(也称为蜘蛛图或网络图)的...

    raphael-min.js

    raphael-min.js

    raphaelJS制作图表、饼图、柱状图、曲线图

    - 创建路径:使用`raphael.path()`函数,通过计算每个点的坐标来构建SVG路径字符串。 - 添加轴:绘制x轴和y轴,同样包括刻度和标签。 - 动态效果:可以考虑添加平滑曲线的功能,如贝塞尔曲线。 在实际应用中,你...

    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-svg-import-classic:将SVG文件导入Raphael

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

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

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

    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 " ...

    前端项目-raphael.zip

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

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

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

    web流程图动态绘制-使用raphael

    节点的位置可以通过x、y坐标设定,连接线则通过贝塞尔曲线或其他路径命令描述。在动态绘制中,可能需要监听用户的交互事件,如鼠标点击、拖拽等,来更新流程图的状态。 在给定的博客文章中,作者详细介绍了如何使用...

    raphaeljs_starter

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

    raphael web绘图工具

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

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

    4. **raphael.serialize** `raphael.serialize`是Raphael库中的一个方法,用于将Raphael图形序列化成字符串。这个字符串包含了图形的形状、位置、尺寸等信息,可以用来在不同的页面之间传递或存储图形状态。当需要...

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

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

    myflow流程图设计采用raphael的js文件

    - 理解贝塞尔曲线和路径数据字符串,以便绘制流程图中的连接线。 - 了解如何通过JavaScript实现动态交互,如点击和拖动行为。 - 熟悉HTML和CSS,以便将流程图集成到网页中并进行样式定制。 通过这个案例,你不仅...

    raphael.js绘制流程图

    4. **连接图形**:使用`path()`函数创建连接线,利用相对坐标描绘线条路径。可以使用`moveTo()`、`lineTo()`等方法精确控制线条走向。 5. **事件处理**:如果需要交互功能,如点击图形跳转到其他页面,可以添加事件...

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

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

    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