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

Raphael学习笔记(5)--绘图(路径【椭圆曲线】)

阅读更多

 

1、椭圆曲线简介

 

 

前面的学习笔记:Raphael学习笔记(3)--绘图(路径【直线】)简单的描述了绘制椭圆曲线的参数,但没有详细的介绍各个参数的含义,这次,我们就详细的学习一下椭圆曲线的绘制。

 

A(a) elliptical arc (rx ry x-axis-rotation large-arc-flag sweep-flag x y) 

 

参数含义:

rx:横轴的长度

ry:纵轴的长度;

x-axis-rotation:椭圆的横轴与x轴的角度;

large-arc-flag:区分弧度的大小(0表示小角度弧度,1表示大角度弧度);

sweep-flag:绘制弧度围绕椭圆中心的方向(0表示逆时针方向,1表示顺时针方向);

x y:椭圆曲线终点坐标;

 

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_4 = new Raphael('raphael_4',400,400);

			//绘制左上的椭圆
			raphael_4.ellipse(130,40,60,30);
			raphael_4.ellipse(70,70,60,30);
			raphael_4.path('M70,40 A60,30 0 0,0 130,70').attr('stroke','red');
			raphael_4.text(40,30,'start(70,40)')
				.attr({
					'font-size':11,
					'fill':'blue'
				});
			raphael_4.text(160,80,'end(130,70)')
				.attr({
					'font-size':11,
					'fill':'blue'
				});

			raphael_4.text(70,120,'large-arc-flag=0\nsweep-flag=0')
				.attr({
					'font-size': 11,
					'fill': 'green',
					'text-anchor': 'start'
				});
			
			//绘制右上的椭圆
			raphael_4.ellipse(330,40,60,30);
			raphael_4.ellipse(270,70,60,30);
			raphael_4.path('M270,40 A60,30 0 0,1 330,70').attr('stroke','red');
			raphael_4.text(240,30,'start(270,40)')
				.attr({
					'font-size':11,
					'fill':'blue'
				});
			raphael_4.text(360,80,'end(330,70)')
				.attr({
					'font-size':11,
					'fill':'blue'
				});
			raphael_4.text(270,120,'large-arc-flag=0\nsweep-flag=1')
				.attr({
					'font-size': 11,
					'fill': 'green',
					'text-anchor': 'start'
				});

			//绘制左下的椭圆
			raphael_4.ellipse(130,240,60,30);
			raphael_4.ellipse(70,270,60,30);
			raphael_4.path('M70,240 A60,30 0 1,0 130,270').attr('stroke','red');
			raphael_4.text(40,230,'start(70,240)')
				.attr({
					'font-size':11,
					'fill':'blue'
				});
			raphael_4.text(160,280,'end(130,270)')
				.attr({
					'font-size':11,
					'fill':'blue'
				});
			raphael_4.text(70,320,'large-arc-flag=1\nsweep-flag=0')
				.attr({
					'font-size': 11,
					'fill': 'green',
					'text-anchor': 'start'
				});
			
			//绘制右下的椭圆
			raphael_4.ellipse(330,240,60,30);
			raphael_4.ellipse(270,270,60,30);
			raphael_4.path('M270,240 A60,30 0 1,1 330,270').attr('stroke','red');
			raphael_4.text(240,230,'start(270,240)')
				.attr({
					'font-size':11,
					'fill':'blue'
				});
			raphael_4.text(360,280,'end(330,270)')
				.attr({
					'font-size':11,
					'fill':'blue'
				});
			raphael_4.text(270,320,'large-arc-flag=1\nsweep-flag=1')
				.attr({
					'font-size': 11,
					'fill': 'green',
					'text-anchor': 'start'
				});
			

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

  </body>
</html>
 

代码实现的效果:

 


  • 大小: 16.9 KB
分享到:
评论
1 楼 nikoloss 2012-08-02  
请问这么为这个raphael_4.text这个字上面设置事件?
在raphael_4.path上面我已经会设置了。但是我现在的需求是文字触发事件而不是图形。。。

相关推荐

    Raphael学习笔记

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

    Raphael-Radar-master

    5. **交互性**:Raphael.js支持事件监听,可以为雷达图添加交互功能,比如悬停显示数据详情,点击高亮特定部分等。这可以通过`Paper.set()`和`Paper.mouseover()`等方法实现。 6. **动态更新**:在Raphael-Radar-...

    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 参考文档《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 " ...

    raphael web绘图工具

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

    SVG画图插件raphaelJS

    1. **图形创建**:你可以使用RaphaelJS创建各种基本形状,如圆形、椭圆、矩形、多边形、线和曲线等。此外,还支持自定义路径,以创建更复杂的图形。 2. **样式控制**:你可以设置图形的颜色、填充、描边、线条宽度...

    raphaeljs_starter

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

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

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

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

    Raphael.js是一个强大的JavaScript库,专门用于在Web浏览器中创建矢量图形。它提供了一种在SVG(可缩放矢量图形)和VML(Vector Markup Language)之间无缝切换的方法,使得开发者能够在所有现代浏览器以及IE5.5及更...

    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中文帮助文档(API).chm

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

    raphael 简单绘图

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

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

Global site tag (gtag.js) - Google Analytics