【js类库Raphaël】使用raphael.js根据点坐标绘制平滑曲线
一、可供参考的文档资料。
raphaeljs官网:http://raphaeljs.com/
w3c关于path的介绍:http://www.w3.org/TR/2003/REC-SVG11-20030114/paths.html
mdn关于path的介绍(英文版):https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
mdn关于path的介绍(中文版):https://developer.mozilla.org/zh-CN/docs/Web/SVG/Tutorial/Paths
二、简介
raphaeljs目前支持的浏览器: Firefox 3.0+, Safari 3.0+, Chrome 5.0+, Opera 9.5+, Internet Explorer 6.0+.
因为支持ie6,所以应用可以更广泛些。
超级喜欢的一个demo:http://raphaeljs.com/polar-clock.html
三、实例
使用raphael.js根据点坐标绘制平滑曲线
难点:需要理解svg如何使用贝塞尔曲线;如何获得贝塞尔曲线的锚点坐标。
效果图:
aaarticlea/png;base64,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" alt="" width="378" height="152" />
代码:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Carl Test</title>
<script src="./js/raphael.js"></script>
</head>
<body>
<div id="carl"></div> <script>
window.onload = function () { //获取锚点
function getAnchors(p1x, p1y, p2x, p2y, p3x, p3y) {
var l1 = (p2x - p1x) / 2,
l2 = (p3x - p2x) / 2,
a = Math.atan((p2x - p1x) / Math.abs(p2y - p1y)),
b = Math.atan((p3x - p2x) / Math.abs(p2y - p3y));
a = p1y < p2y ? Math.PI - a : a;
b = p3y < p2y ? Math.PI - b : b;
var alpha = Math.PI / 2 - ((a + b) % (Math.PI * 2)) / 2,
dx1 = l1 * Math.sin(alpha + a),
dy1 = l1 * Math.cos(alpha + a),
dx2 = l2 * Math.sin(alpha + b),
dy2 = l2 * Math.cos(alpha + b);
return {
x1: p2x - dx1,
y1: p2y + dy1,
x2: p2x + dx2,
y2: p2y + dy2
};
} (function(){
var data = [{x:35,y:180},{x:125,y:59},{x:250,y:180},{x:450,y:70},{x:530,y:170}];
var paper = Raphael("carl", 800, 300); var p;
for(var i=0, ii = data.length; i<data.length;i++){
var point = data[i];
var x = point.x;
var y = point.y;
if(!i){
p = ["M", x, y, "C", x, y];
}
if (i && i < ii - 1) {
var point1 = data[i-1];
var point2 = data[i+1];
var a = getAnchors(point1.x, point1.y, x, y, point2.x, point2.y);//获取锚点
p = p.concat([a.x1, a.y1, x, y, a.x2, a.y2]); paper.circle(a.x1, a.y1).attr({fill: "red",stroke:"#fff",r:3});//锚点
paper.circle(a.x2, a.y2).attr({fill: "red",stroke:"#fff",r:3});//锚点
paper.path('M'+a.x1+','+a.y1+' L'+x+','+y).attr({stroke:"red"});//锚点到点的连线
paper.path('M'+a.x2+','+a.y2+' L'+x+','+y).attr({stroke:"red"});//锚点到点的连线
} paper.circle(x,y).attr({fill: "#34C400",stroke:"#fff",r:3}); }
p = p.concat([x,y,x,y]);
paper.path().attr({'path':p}).attr({stroke:"#34C400"}); })(); };
</script>
</body>
</html>
查看:
aaarticlea/png;base64,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" alt="" />
aaarticlea/png;base64,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" alt="" />
【js类库Raphaël】使用raphael.js根据点坐标绘制平滑曲线的更多相关文章
- 【js类库Raphaël】基于svg中的path画40%表示的环型图
一.可供参考的文档资料. raphaeljs官网:http://raphaeljs.com/ w3c关于path的介绍:http://www.w3.org/TR/2003/REC-SVG11-200 ...
- svg绘图工具raphael.js的使用
1.raphael.js svg画图的开源库,支持IE8+ 官方api: http://dmitrybaranovskiy.github.io/raphael/reference.html Githu ...
- 强大的矢量图形库:Raphael JS 中文帮助文档及教程
Raphael 是一个用于在网页中绘制矢量图形的 Javascript 库.它使用 SVG W3C 推荐标准和 VML 作为创建图形的基础,你可以通过 JavaScript 操作 DOM 来轻松创建出 ...
- 学习RaphaelJS矢量图形包--Learning Raphael JS Vector Graphics中文翻译(一)
(原文地址:http://www.cnblogs.com/idealer3d/p/LearningRaphaelJSVectorGraphics.html) 前面3篇博文里面,我们讲解了一本叫做< ...
- Raphael Js矢量库API简介:
Raphael Js矢量库API简介:Raphael Javascript 是一个 Javascript的矢量库. 2010年6月15日,著名的JavaScript库ExtJS与触摸屏代码库项目jQT ...
- PHP+Mysql+jQuery实现中国地图区域数据统计(raphael.js)
使用过百度统计或者cnzz统计的童鞋应该知道,后台有一个地图统计,不同访问量的省份显示的颜色也不一样,今天我将带领大家开发一个这样的案例.上一篇<使用raphael.js绘制中国地图>文章 ...
- Javascript实战开发:教你使用raphael.js绘制中国地图
最近的数据统计项目中要用到中国地图,也就是在地图上动态的显示某个时间段某个省份地区的统计数据,我们不需要flash,仅仅依靠raphael.js以及SVG图像就可以完成地图的交互操作.在本文中,我给大 ...
- 简单轻量级的一套JS 类库(RapidDevelopmentFramework.JS)
1.最近好久没有更新自己的博客了,一直在考虑自己应该写一些什么.4.2日从苏州回到南京的路上感觉自己的内心些崩溃和失落,我就不多说了? 猛然之间我认为自己需要找一下内心的平衡.决定开发属于自己一套快速 ...
- raphael.js 给元素 hover 添加glow() 外发光
用raphael.js 给 svg画布里面添加个元素,嗯就圓好了,男人一般都喜欢圆形的东西,比如xx , xxx , 还有xxx $(document).ready(function() { var ...
随机推荐
- java.lang.ClassCastException:android.widget.Button cannot be cast to android.widget.ImageView
今天遇到一个错误也不知道怎么回事,上网搜了一下: 出现的问题是:java.lang.ClassCastException:android.widget.Button cannot be cast to ...
- C++源码学习
C/C++是最主要的编程语言.这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码.这份清单提供了源代码的链接以及它们的小说明.我已尽力包括最佳的C/C++源代码的网站.这不是一个完整的清 ...
- 导出数据到EXCEL并生成多个Sheet
一.准备工作 引用:Microsoft.Office.Interop.Excel 准备多个DataTable数据添加到DataSet中. 二.代码 public void CreateExcel(Da ...
- css使图片变成黑白效果
-webkit-filter: grayscale(%); -moz-filter: grayscale(%); -ms-filter: grayscale(%); -o-filter: graysc ...
- CodeForces 1118F2. Tree Cutting (Hard Version)
题目简述:给定$n \leq 3 \times 10^5$个节点的树,其中一部分节点被染色,一共有$k$种不同的颜色.求将树划分成 $k$ 个不相交的部分的方案数,使得每个部分中除了未染色的节点以外的 ...
- ACM-ICPC2018北京网络赛 Saving Tang Monk II(bfs+优先队列)
题目1 : Saving Tang Monk II 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 <Journey to the West>(also < ...
- C#中异步及winform中界面假死
c#中可以用BeginInvoke去启动异步调用,但是有两个BeginInvoke一个是controller的BeginInvoke还有一个是委托的BeginInvoke. 主要区别是controll ...
- MVC4 @helper辅助方法
Razor提供了一种很方便的语法,可以将view页面中部分内容或部分代码抽取出来,变成一个独立的辅助方法. eg1: @foreach(var item in Model){ <标签tr&g ...
- Kolla多节点环境安装OVN
安装OVN组件 控制节点 ### 安装ovn-northd # wget https://copr.fedorainfracloud.org/coprs/leifmadsen/ovs-master/r ...
- Git查询
Git查询 查询分支 git branch # 查询本地分支 git branch -a # 查询所有分支 $ git branch -a * master remotes/origin/HEAD - ...