十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
!doctype html
创新互联公司是一家专业提供湟源企业网站建设,专注与网站建设、做网站、H5高端网站建设、小程序制作等业务。10年已为湟源众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。
html lang="zh"
head
meta charset="UTF-8"
title效果实现/title
style
*{margin: 0;padding: 0;}
div{width: 0px;height: 0px;border-radius: 50px;border:50px solid transparent;border-top-color:red;}
/style
/head
body
div/div
/body
/html
在HTML5 Canvas 中,我们可以通过 arc 方法来绘制圆形:
// context.arc(x, y, r, sAngle, eAngle, counterclockwise);
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
ctx.arc(100, 100, 50, 0, 2 * Math.PI);
ctx.fill();
但如何绘制一个扇形呢?是不是简单地修改结束角度 2 * Math.PI 就可以了呢?
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
ctx.arc(100, 100, 50, 0, 1.5 * Math.PI);
ctx.fill();
然而,我们会看到一个不符合我们预期的图形:
因为在 arc 方法是用来创建一条弧线的,而如果直接将弧线的起点和终点闭合,再进行填充,自然绘制出的是上面的图形了。
知道了原因,要解决就很简单了,只要让这条弧线与圆心进行闭合,就刚好形成了一个扇形:
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
// 开始一条新路径
ctx.beginPath();
// 位移到圆心,方便绘制
ctx.translate(100, 100);
// 移动到圆心
ctx.moveTo(0, 0);
// 绘制圆弧
ctx.arc(0, 0, 50, 0, Math.PI * 1.5);
// 闭合路径
ctx.closePath();
ctx.fill();
这里的重点在于 moveTo 和 closePath ,将路径的起点设置在圆心,而最后闭合路径,正好就成为了一个扇形。
代码也可以抽取为通用的方法,如下:
CanvasRenderingContext2D.prototype.sector = function(x, y, radius, sAngle, eAngle, counterclockwise) {
this.beginPath();
this.translate(x, y);
this.moveTo(0, 0);
this.arc(0, 0, radius, sAngle, eAngle, counterclockwise);
this.closePath();
return this;
};
cxt.arc(100,100,30,0,Math.PI*2,true); 括号内第一个和第二个参数,代表圆心坐标。第三个参数是圆的半径。第四个参数代表圆周起始位置。0 PI就是起始位置。沿顺时针路线,分别是0.5 PI(正下方),1 PI和1.5 PI(正上方),为画饼图提供了扇形范围的依据。 第五个参数是弧长Math.PI*2就是整个圆,Math.PI是半圆。第六个参数是一个布尔值,true是顺时针false是顺时针。
html5 canvas 元素的作用就是描绘出图形,比如画圆,扇形,折线图等,有了这个,这些功能都是很好实现的。
canvas能做什么?
canvas是HTML5中的新元素,你可以使用javascript用它来绘制图形、图标、以及其它任何视觉性图像。它也可用于创建图片特效和动画。如果你掌握了完整的命令,你可以用canvas创建丰富的web应用程序。如果你想很好的使用canvas,你首先应该很好的掌握javascript。
这篇文章是一篇基础教程,你能了解一些设计方法。比如用HTML5 canvas 进行图形设计。
用HTML5 canvas设计
设计和开发一个web页面会包含很多的内容,用户首先需要有一个支持HTML canvas的浏览器。
首先创建一个HTML5文档页面,设置document type是HTMl5的;
其次在页面body区域添加一个canvas标签:
canvas/canvas
第三、给这个canvas定义一个id属性,这样方便我们在js中调用它。添加一个宽和高属性,在canvas标签中添加一个当浏览器不支持的时候显示给用户的内容。下面是列子代码:
canvas id="canvastest" width="500" height="600"
p你的浏览器不支持HTML5 canvas,请更新您的浏览器!/p
/canvas
现在我们创建了一个包含HTML5 canvas 元素的空白画布,我们将使用js和canvas元素的方法来创建我们的图像。
添加一个javascript用HTMl5 canvas的方法:
var canvasTest=document.getElementById('canvastest');//获取canvas元素;
var testcontext=canvasTest.getContext('2d');
使用javascript来创建你的画布,你可以使用矩形、圆圈和三角形,并使用线、幻灯片和渐变来创建你的设计。
下面是完成的代码:
var canvasTest=document.getElementById('canvastest');
var testcontext=canvasTest.getContext('2d');
// create rectangle
testcontext.fillStyle='rgb(0,125,125)';
testcontext.fillRect(10,10,250,180);
// create circle
testcontext.beginPath();
testcontext.arc(300, 340, 100, 0, Math.PI * 2, true);
testcontext.closePath();
testcontext.fillStyle='rgb(75,10,125)';
testcontext.fill();
testcontext.stroke();
我们可以将上面的代码加入window.onload,或者jQuery的ready方法里,当文档加载完,将会创建文明的图形。
一些HTML5 canvas 图像解决方案
用与HTML5 Canvas元素你可以开发动态绘图对象比如如可视化信息或数据图。HTML5 canvas 可以在javascript的帮助下很容易的绘制二维图形。让我们来看一下HTML5 canvas元素的一些数据图应用。
1. HumbleFinance
HumbleFinance是用js开发的一个开源的数据可视化图表,它用HTML5 canvas生成可视化图表数据,它可以用一个轴来展示任何两个二维的数据集。
地址:
2.Graphr
Graphr是一个用HTML5 canvas写的一个计算器应用,有每个图像计算器应有的基本功能。
地址:
3.用HTML5和jQuery创建的华丽的动画饼图
你可以用javascript和HTML5来创建一个交互式饼图,有华丽的动画效果。这在之前只能用flash来完成,现在也可以使用最新的HTML5技术了。
地址:
4. AwesomeJS
AwesomeJS 能够让你创建简单有用的图表,而仅需几行代码即可。这是一个基于HTML5和canvas的javascript库。
地址:
5.Ticker Plot(股票图)
Ticker Plot(股票图)是每一个在工作是使用图标的web开发人员都必备的一个图表工具。这是一个开源的项目,它使用HTML5 canvas在画布上绘制图形符号和鼠标事件。Ticker Plot(股票图)是专门为股票行情和技术分析设计的。