HTML5新增元素之Canvas-实现太极八卦图和扇子
绘制流程:
1、在HTML5中添加canvas元素,并且设置宽度和ID
2、在canvas元素中添加提示语句,让不支持的canvas的浏览器能够显示友好的提示语句
3、添加script元素
4、获取画布/设置绘图环境
(1)制定线宽:lineWidth(驼峰命名法)=数值
(2)制定颜色:strokeStyle=颜色值(只适用于轮廓、线段、填充颜色用:fillStyle=颜色)
(3)设置起点:moveTo(x坐标,y坐标)
(4)设置终点:lineTo(x 坐标,y坐标)
(5)开始绘制:stroke()
文末有Canvas实现太极八卦图和扇子的案例可以看一下
一、什么是 Canvas?
HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。
画布是一个矩形区域,您可以控制其每一像素。canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。
二、创建 Canvas 元素
向 HTML5 页面添加 canvas 元素,规定元素的 id、宽度和高度:
<canvas id="myCanvas" width="200" height="100"></canvas>
通过 JavaScript 来绘制
- canvas 元素本身是没有绘图能力的。所有的绘制工作必须在 JavaScript 内部完成:
<script type="text/javascript"> var c=document.getElementById("myCanvas"); var cxt=c.getContext("2d"); cxt.fillStyle="#FF0000"; cxt.fillRect(0,0,150,75); </script>
JavaScript 使用 id 来寻找 canvas 元素:
var c=document.getElementById("myCanvas");
然后,创建 context 对象:
var cxt=c.getContext("2d");
getContext(“2d”) 对象是内建的 HTML5 对象,拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。
下面的两行代码绘制一个红色的矩形:
cxt.fillStyle="#FF0000"; cxt.fillRect(0,0,150,75);
fillStyle 方法将其染成红色,fillRect 方法规定了形状、位置和尺寸。
理解坐标
上面的 fillRect 方法拥有参数 (0,0,150,75)。
意思是:在画布上绘制 150x75 的矩形,从左上角开始 (0,0)。
如下图所示,画布的 X 和 Y 坐标用于在画布上对绘画进行定位。
案例:
HTML代码如下:
<canvas id="canvas" width="500" height="500"> 您的浏览器暂不支持HTML的元素 c.lineTo(200,200); </canvas>
CSS代码如下:
<style> canvas { background: #a9a9a0 ; } </style>
JS代码如下:
<script> var canvas=document.getElementById('canvas'); var c=canvas.getContext('2d'); c.lineWidth=50; c.strokeStyle="aaaaaa"; c.moveTo(50,50); c.lineTo(200,200); c.lineTo(300,300); c.lineTo(50,50); c.stroke(); </script>
效果图如下(有点丑,别喷我):
代码如下:
<canvas id="canvas" width="800" height="700"> 您的浏览器暂不支持HTML的元素 c.lineTo(200,200); </canvas>
<style> canvas { background: #a9a9a0 ; } </style>
<script> var canvas=document.getElementById('canvas'); var c=canvas.getContext('2d'); c.lineWidth=10; c.strokeStyle="a52a2a"; c.lineWidth=6; c.strokeStyle="#ffa500"; c.fillStyle="#ffa500"; c.moveTo(400,500); c.arc(400,500,300,Math.Pi*7/6,Math.PI*1.5,false); c.beginPath(); c.moveTo(400,500); c.arc(400,500,300,Math.PI*11/6,Math.PI*7/6,true); c.fill(); c.beginPath(); c.fillStyle="#a9a9a0"; c.arc(400,500,150,Math.PI*7/6,Math.PI*1.5,false); c.beginPath(); c.moveTo(400,500); c.arc(400,500,150,Math.PI*11/6,Math.PI*7/6,true); c.fill(); c.beginPath(); c.fillStyle="#000000"; c.font="55px 楷体"; c.fillText("纵",375,275); c.fillText("横",375,340);
太极八卦效果图如下: