要实现的功能是一张的图片,修改成大小还是,但是是原图缩小成800X800后,放到的画布上的图
要实现的功能是一张的图片,修改成大小还是,但是是原图缩小成800X800后,放到的画布上的图
说明:arcTo()方法将利用当前端点、端點1(x1,y1)和端点2(x2,y2)这三个点所形成的夹角然后绘制一段与夹角的两边相切并且半径为radius的圆上的弧线。弧线的起点就是当前端点所在边与圆的切点弧线的终点就是端点2(x2,y2)所在边与圆的切点,并且绘制的弧线是两个切点之间长度最短的那个圆弧此外,如果当前端点不是弧线起点arcTo()方法还将添加一条当前端点到弧线起点的直线线段。
//取得绘图上下文对象的引用“2d”是取得2D上下文对象 //单独使用arcTo()方法必须指定绘图开始的基点 //创建两切线之间的弧/曲线 //起始端点(20,20)、端点1(290,150)、端点2(20,280)三点组成的夹角相切并且半径为50的圆弧,并且只保留两切点之间圆弧部分以及起始端點到第一个切点之间部分
如上图当前端点(20,20)、端点1(200,150)端点2(20,280)三点组成夹角绘制弧线弧线半径为50并与夹角相切。当前端点不是弧线起点arcTo()方法还将添加一条当前端点到弧线起点的直线线段。
stroke():绘制已定义的路径
fill():填充当前绘图路径
下面的代码中我用了两个画布畫图方法分别为drawCanvas1和drawCanvas2,以方便比较两者的区别
说明:createPattern()方法用于创建一个表示将图像在当前图形上以什么样的方式进行重复平铺的CanvasPattern对象参数image指定用于平铺的图潒,该参数可以是一个Image对象也可以是一个Canvas对象。参数repetitionStyle表示图像如何进行重复平铺可能的值有repeat(在水平和垂直方向上均进行重复平铺,这吔是默认值)、repeat-x(只在水平方向上重复平铺)、repeat-y(只在垂直方向上重复平铺)、no-repeat(只铺一次不进行重复平铺)。
注意二者的区别仅仅在于矩形区域的起点坐标。第一个为canvas画布的起点坐标(0,0)第二个起点为(30,30)。从效果来看第二幅图的第一個图像并不是完整的
需要注意:CanvasPattern对象开始平铺图像的参考起点并不是我们当前绘制图形的左上角,而是整个canvas画布的左上角确切地说,即canvas的起点坐标(0,0)
紸意为什么画布二的矩形位置和画布一不一样?
因为toDataURL()导出的是整个画布而画布二又是从(10,10)开始绘制的
以上就是HTML5 canvas画布详解(四)的詳细内容,更多请关注php中文网其它相关文章!