html5-----2

我们这期接上一期的html5,虽然有太多的不足;

在上一期中我们说到Canvas绘制图形,其中我们说到拿画笔,然后绘制了一个实心的方框,一个边框的空心的方框,一个有边框有内容的矩形,以及绘制直线,最后我们绘制了一棵松树,现在我们接着上次的说;

在学习html5中是不可避免的会遇到绘制圆形的;

现在我们来看下绘制圆形的代码:

    arc(cx,cy,radius,start_angle,end_angle,direction);

      cx  水平坐标

      cy  垂直坐标

      radius  圆心(半径)

      start-angel  圆周起始位置  

      end_angle  弧长 Math.PI是半圆  Math.PI*2是整个圆  0.5为四分之一

      direction 顺、逆时针  false为逆时针,true为顺时针(决定了圆弧的方向)

现在我们看了这个代码一定还是有很多不懂吧,现有我们来做一个例子:

body里的代码:

<canvas id="mycanvas" width="1000" height="600" style="border: 1px solid blue;"></canvas>

script里的代码:

var mycanvas =document.getElementById("mycanvas");----这里就是拿到画面
var ctx =mycanvas.getContext("2d");----这里就是拿到画笔

//等会以在的代码都会在上面这些代码的基础上

现在我们来画一个圆:

ctx.beginPath();--------开启路径的绘制,重置path为初始状态;
ctx.strokeStyle="green";-----这里是对圆的填充颜色
ctx.fillStyle="green";-----这里是对圆的线条颜色
ctx.arc(100,100,80,0*360*Math.PI/180,360*Math.PI/180,false);
ctx.stroke();
ctx.fill();

最后的图案如图:

但如果把绘制圆这句必变两个数,如下:

ctx.arc(100,100,80,0*180*Math.PI/180,180*Math.PI/180,false);

最后的图案如图:

但如果你把false换成true,结果又如下:

圆基本上就是这样了,如果你想要实心或者空心的,就去掉边框和实心填充就行了。

下面我们在说一个绘制圆角直线:

在上一次中我们不是说了一个绘制直线的方法吗,我们现在只要在中间加这一句话就行了:

lineCap='round';

现在我们看整体代码如下:

ctx.beginPath();
ctx.lineCap='round';
ctx.strokeStyle="blue";
ctx.lineWidth=10;--------这句代码是设置线条的宽度
ctx.moveTo(100,100);
ctx.lineTo(100,200);

closePath()---------绘制路径path结束,它会绘制一个闭合的区间,添加一条起始位置到当前坐标的闭合曲线;
ctx.stroke();

结果如下:

现在我样来说下平移、绽放和旋转等:

translate(x,y)-------平移变换,原点移动到坐标(x,y);

rotate(a)------旋转变换,旋转a度角;

scale(x,y)-----伸缩变换;

save(),restore()----提供一个堆栈,保存和恢复绘图状态,save将当前绘图状态压入堆栈,restore出栈,恢复绘图状态;

fillText(text,x,y)-----绘制文字;

rect()------矩形路径;

注意:在这里,平移和旋转的都是画布,就是说,图形本身是没有变的,只是变了画布;

ctx.strokeStyle="red";
ctx.lineWidth=10;
ctx.rect(100,100,100,200);//矩形路径
ctx.translate(100,100);//平移
ctx.scale(2,2);//缩放
ctx.rotate(30*Math.PI/180);//选转
ctx.moveTo(10,10);
ctx.lineTo(10,150);

ctx.stroke();

最后结果如下:

本次就说到里了,如果感兴趣,你现在也可以自己绘制一些简单的图形了。

原文地址:https://www.cnblogs.com/chencyl/p/3933737.html