当前位置: 首页 > 工具软件 > RGraph > 使用案例 >

raphael/rgraph介绍

倪鹏
2023-12-01

h5火了以后,svg/vml基本很少提了。不过后者在老浏览器兼容方面,还有一些长处。

-------------------------------

一、raphael是什么??

Raphael  是一个用于在网页中绘制矢量图形的  Javascript  库。它使用 SVG W3C 推荐标准和 VML 作为创建图形的基础。
Raphael 目前支持的浏览器包括:  Chrome 5.0+, Internet Explorer 6.0+,   Firefox 3.0+,Safari 3.0+ ,Opera 9.5+ 等。

二、用raphael干什么? ?

    绘制拓扑(主要)、流程图、数据之间的关系展示等。
 

三、为什么用raphael ? ?

   简单  易上手  --js插件。
   灵活--功能比较多。

四、如何使用 ? ?

   主要包含 画布、点、线三部分。
     raphael的API

1.html
 引入raphael.js 或者 raphael.min.js  
  1. <!-- 画布 -->
  2. <div class="topo" id="topo" ></div>
2.css 
  1. .topo{
  2. margin: 0 auto;
  3. width: 600px;
  4. height: 300px;
  5. background:#ddd;
  6. }
3.js
//1.创建画布
  1. //1.画布初始化
  2. var graph = Raphael("topo",$("#topo").width(),$("#topo").height());
//2.画点   image,circle,rect,ellipse等
  1. //画图片 image(src, x, y, width, height)
  2. var node1 = graph.image("img/dev.png",100,50,50,50);
  3. //画圆 circle(x,y,r)
  4. var node2 = graph.circle(400,80,30);
// 3.画线 --起点、终点、线数据
  1. //3.画线
  2. var _sPos = {
  3. x:(node1.getBBox().x+node1.getBBox().x2)/2,
  4. y:(node1.getBBox().y+node1.getBBox().y2)/2
  5. };
  6. var _ePos = {
  7. x:(node2.getBBox().x+node2.getBBox().x2)/2,
  8. y:(node2.getBBox().y+node2.getBBox().y2)/2
  9. };
  10. //直线 M (x y)+
  11. var path = ['M', _sPos.x, _sPos.y, _ePos.x, _ePos.y];
  12. var lineAttr = {
  13. "stroke":"#2E3DF2",//字符串笔触颜色
  14. "stroke-width":2,//数字笔触宽度(像素,默认为1)
  15. "stroke-dasharray":[""],//笔触分割样式 ["", "-", ".", "-.", "-..", ". ", "- ", "--", "- .", "--.", "--.."]
  16. }
  17. var line1 = graph.path(path.join(',')).attr(lineAttr).toBack();
  18. //曲线-- C (x1 y1 x2 y2 x y)+
  19. var sAPoint = {
  20. x: _sPos.x + (_ePos.x - _sPos.x) * 0.2 + 0.12 * (_ePos.y - _sPos.y),
  21. y: _sPos.y + (_ePos.y - _sPos.y) * 0.2 - 0.12 * (_ePos.x - _sPos.x)
  22. };
  23. var eAPoint = {
  24. x: _ePos.x - (_ePos.x - _sPos.x) * 0.2 + 0.12 * (_ePos.y - _sPos.y),
  25. y: _ePos.y - (_ePos.y - _sPos.y) * 0.2 - 0.12 * (_ePos.x - _sPos.x)
  26. };
  27. var path = ['M', _sPos.x, _sPos.y, 'C', sAPoint.x, sAPoint.y, eAPoint.x, eAPoint.y, _ePos.x, _ePos.y];
  28. var line2 = graph.path(path.join(',')).attr(lineAttr).toBack();
4.目前主要使用到的raphael API:
   A:元素(点、线)
 类似资料: