想看前面整理的canvas常用API的同学可以点下面:

canvas学习之API整理笔记(一)
canvas学习之API整理笔记(二)
本系列文章涉及的所有代码都将上传至:http://wd.:81//201612/yuanma/About-Canvas-master_jb51.rar
从本篇文章开始,我会分享给大家canvas绘制的各种基础图形和酷炫的图形,注意:是一系列!欢迎关注!
后续每篇文章我会着重分享给大家一些使用Canvas开发的实例和这些实例的实现思路。
本文看点:使用canvas来绘制常见的各种图形实例,并且会简单封装一下绘制各图形的方法,最后会分享给大家一个封装好的快速绘制多边形的方法。
开始之前
//获取canvas容器
var can = document.getElementById('canvas');
//创建一个画布
var ctx = can.getContext('2d');
绘制圆形
var draw = function(x, y, r, start, end, color, type) {
var unit = Math.PI / 180;
ctx.beginPath();
ctx.arc(x, y, r, start * unit, end * unit);
ctx[type + 'Style'] = color;
ctx.closePath();
ctx[type]();
}
参数解释:x,y-圆心;start-起始角度;end-结束角度;color-绘制颜色;type-绘制类型('fill'和'stroke')。
实例如下图所示:
绘制三角形
var draw = function(x1, y1, x2, y2, x3, y3, color, type) {
ctx.beginPath();
ctx.moveTo(x1, y1);
ctx.lineTo(x2, y2);
ctx.lineTo(x3, y3);
ctx[type + 'Style'] = color;
ctx.closePath();
ctx[type]();
}
参数解释:x1(2、3),y1(2、3)-三角形的三个点的坐标;color-绘制颜色;type-绘制类型('fill'和'stroke')。
实例如下图所示:
绘制(圆角)矩形
var draw = function(x, y, width, height, radius, color, type){
ctx.beginPath();
ctx.moveTo(x, y+radius);
ctx.lineTo(x, y+height-radius);
ctx.quadraticCurveTo(x, y+height, x+radius, y+height);
ctx.lineTo(x+width-radius, y+height);
ctx.quadraticCurveTo(x+width, y+height, x+width, y+height-radius);
ctx.lineTo(x+width, y+radius);
ctx.quadraticCurveTo(x+width, y, x+width-radius, y);
ctx.lineTo(x+radius, y);
ctx.quadraticCurveTo(x, y, x, y+radius);
ctx[type + 'Style'] = color || params.color;
ctx.closePath();
ctx[type]();
}
参数解释:x,y-左上角点的坐标;width、height-宽高;radius-圆角;color-绘制颜色;type-绘制类型('fill'和'stroke')。
实例如下图所示:
绘制多边形
var drawPolygon = function(ctx, conf){
var x = conf && conf.x || 0; //中心点x坐标
var y = conf && conf.y || 0; //中心点y坐标
var num = conf && conf.num || 3; //图形边的个数
var r = conf && conf.r || 100; //图形的半径
var width = conf && conf.width || 5;
var strokeStyle = conf && conf.strokeStyle;
var fillStyle = conf && conf.fillStyle;
//开始路径
ctx.beginPath();
var startX = x + r * Math.cos(2*Math.PI*0/num);
var startY = y + r * Math.sin(2*Math.PI*0/num);
ctx.moveTo(startX, startY);
for(var i = 1; i <= num; i++) {
var newX = x + r * Math.cos(2*Math.PI*i/num);
var newY = y + r * Math.sin(2*Math.PI*i/num);
ctx.lineTo(newX, newY);
}
ctx.closePath();
//路径闭合
if(strokeStyle) {
ctx.strokeStyle = strokeStyle;
ctx.lineWidth = width;
ctx.lineJoin = 'round';
ctx.stroke();
}
if(fillStyle) {
ctx.fillStyle = fillStyle;
ctx.fill();
}
}
参数说明:
ctx: canvas画布
conf: 配置项,提供以下一些配置
上图效果的代码如下:
上图1的代码:
drawPolygon(ctx, {
num: 6,
r: 100,
strokeStyle: 'blue',
fillStyle: '#9da'
})
上图2的代码:
drawPolygon(ctx, {
num: 4,
r: 150,
strokeStyle: 'red',
width: 4
})
上图3的代码:
drawPolygon(ctx, {
x: 800,
y: 250,
num: 10,
fillStyle: '#000'
})
结语
我们总结一下,使用canvas绘制图形就是那几个函数:beginPath、arc、moveTo、lineTo、closePath、fill、stroke。当我们能够熟练掌握并运用自如的时候,就能够独当一面了。加油吧,骚年们!
本文涉及的代码我已经上传至github,项目代码github地址,喜欢的同学点个Star,多谢多谢~
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# canvas
# 圆形
# 三角形
# 矩形
# 多边形
# Android编程之canvas绘制各种图形(点
# 直线
# 弧
# 圆
# 椭圆
# 文字
# 曲线
# 圆角矩形)
# canvas绘制多边形
# 中心点
# 给大家
# 上图
# 所示
# 角形
# 我会
# 如下图
# 传至
# 圆角
# 运用自如
# 都将
# 想看
# 当我们
# 后会
# 那几个
# 看点
# 创建一个
# 装好
# 加油吧
# 可以点
相关文章:
如何在服务器上配置二级域名建站?
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
如何在云指建站中生成FTP站点?
如何快速搭建高效香港服务器网站?
已有域名和空间如何快速搭建网站?
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
网站设计制作企业有哪些,抖音官网主页怎么设置?
长沙企业网站制作哪家好,长沙水业集团官方网站?
购物网站制作公司有哪些,哪个购物网站比较好?
浅析上传头像示例及其注意事项
武清网站制作公司,天津武清个人营业执照注销查询系统网站?
小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建
如何选择高效响应式自助建站源码系统?
如何获取开源自助建站系统免费下载链接?
如何用PHP快速搭建高效网站?分步指南
如何确保FTP站点访问权限与数据传输安全?
长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?
临沂网站制作公司有哪些,临沂第四中学官网?
建站之星备案流程有哪些注意事项?
高性能网站服务器配置指南:安全稳定与高效建站核心方案
建站之星价格显示格式升级,你的预算足够吗?
h5在线制作网站电脑版下载,h5网页制作软件?
高防服务器租用指南:配置选择与快速部署攻略
建站之星代理如何获取技术支持?
建站之星导航如何优化提升用户体验?
山东网站制作公司有哪些,山东大源集团官网?
相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?
如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?
清除minerd进程的简单方法
建站之星安装模板失败:服务器环境不兼容?
想学网站制作怎么学,建立一个网站要花费多少?
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
小建面朝正北,A点实际方位是否存在偏差?
宿州网站制作公司兴策,安徽省低保查询网站?
,怎么在广州志愿者网站注册?
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
如何用虚拟主机快速搭建网站?详细步骤解析
网站制作需要会哪些技术,建立一个网站要花费多少?
南京网站制作费用,南京远驱官方网站?
c# await 一个已经完成的Task会发生什么
GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?
css网站制作参考文献有哪些,易聊怎么注册?
建站主机空间推荐 高性价比配置与快速部署方案解析
免费网站制作appp,免费制作app哪个平台好?
建站主机服务器选购指南:轻量应用与VPS配置解析
如何快速完成中国万网建站详细流程?
如何配置FTP站点权限与安全设置?
建设网站制作价格,怎样建立自己的公司网站?
深圳网站制作平台,深圳市做网站好的公司有哪些?
建站之星logo尺寸如何设置最合适?
*请认真填写需求信息,我们会在24小时内与您取得联系。