canvas制作圆角矩形(包括填充矩形的功能)
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>canvas制作圆角矩形(包括填充矩形的功能)</title>
</head><body><canvas id="myCanvas" style="border:1px solid #d3d3d3;">您的浏览器不支持 HTML5 canvas 标签。</canvas><script>window.onload = function() {var myCanvas = document.getElementById("myCanvas"); //获取canvas对象 if (myCanvas.getContext("2d")) { //判断浏览器是否支持canvas标签 //设置canvas的宽度和高度 myCanvas.width = 400;myCanvas.height = 200;var context = myCanvas.getContext("2d"); //获取画布context的上下文环境 //绘制一个圆角矩形 strokeRoundRect(context, 10, 10, 100, 50, 10); //绘制并填充一个圆角矩形 fillRoundRect(context, 200, 10, 100, 50, 10, 'rgba(0,0,0,0.7)');} else {alert("您的浏览器不支持canvas,请换个浏览器试试");}};/**该方法用来绘制一个有填充色的圆角矩形 *@param cxt:canvas的上下文环境 *@param x:左上角x轴坐标 *@param y:左上角y轴坐标 *@param width:矩形的宽度 *@param height:矩形的高度 *@param radius:圆的半径 *@param fillColor:填充颜色 **/function fillRoundRect(cxt, x, y, width, height, radius, /*optional*/ fillColor) {//圆的直径必然要小于矩形的宽高 if (2 * radius > width || 2 * radius > height) { return false; }cxt.save();cxt.translate(x, y);//绘制圆角矩形的各个边 drawRoundRectPath(cxt, width, height, radius);cxt.fillStyle = fillColor || "#000"; //若是给定了值就用给定的值否则给予默认值 cxt.fill();cxt.restore();}/**该方法用来绘制圆角矩形 *@param cxt:canvas的上下文环境 *@param x:左上角x轴坐标 *@param y:左上角y轴坐标 *@param width:矩形的宽度 *@param height:矩形的高度 *@param radius:圆的半径 *@param lineWidth:线条粗细 *@param strokeColor:线条颜色 **/function strokeRoundRect(cxt, x, y, width, height, radius, /*optional*/ lineWidth, /*optional*/ strokeColor) {//圆的直径必然要小于矩形的宽高 if (2 * radius > width || 2 * radius > height) { return false; }cxt.save();cxt.translate(x, y);//绘制圆角矩形的各个边 drawRoundRectPath(cxt, width, height, radius);cxt.lineWidth = lineWidth || 2; //若是给定了值就用给定的值否则给予默认值2 cxt.strokeStyle = strokeColor || "#000";cxt.stroke();cxt.restore();}function drawRoundRectPath(cxt, width, height, radius) {cxt.beginPath(0);//从右下角顺时针绘制,弧度从0到1/2PI cxt.arc(width - radius, height - radius, radius, 0, Math.PI / 2);//矩形下边线 cxt.lineTo(radius, height);//左下角圆弧,弧度从1/2PI到PI cxt.arc(radius, height - radius, radius, Math.PI / 2, Math.PI);//矩形左边线 cxt.lineTo(0, radius);//左上角圆弧,弧度从PI到3/2PI cxt.arc(radius, radius, radius, Math.PI, Math.PI * 3 / 2);//上边线 cxt.lineTo(width - radius, 0);//右上角圆弧 cxt.arc(width - radius, radius, radius, Math.PI * 3 / 2, Math.PI * 2);//右边线 cxt.lineTo(width, height - radius);cxt.closePath();}</script>
</body></html>
canvas制作圆角矩形(包括填充矩形的功能)相关推荐
- canvas 圆角矩形填充_canvas制作圆角矩形(包括填充矩形的功能)
canvas制作圆角矩形(包括填充矩形的功能) 您的浏览器不支持 HTML5 canvas 标签. window.onload = function() { var myCanvas = docume ...
- HTML5 Canvas自定义圆角矩形与虚线(Rounded Rectangle and Dash Line)
HTML5 Canvas自定义圆角矩形与虚线(RoundedRectangle and Dash Line) 实现向HTML Canvas 2d context绘制对象中添加自定义的函数功能演示,如何 ...
- canvas应用——圆角矩形图片
前段时间写了一个canvas应用--将方形图片处理为圆形 ,最近就想把这个完善一下,所以就再补充一个canvas的圆角矩形处理方式. 例子 你可以直接点击此处查看 例子 ,先一睹为快. 参数 参数 默 ...
- JavaScript 使用canvas绘制圆角矩形边框
目录 分析 完整代码如下 前言 在react项目中需要用到绘制矩形填充, 因为直角矩形不够美观, 需要绘制圆角填充矩形 分析 Canvas并没有提供绘制圆角矩形的方法,但是通过观察,我们可以发现,其实 ...
- PS 如何制作 圆角矩形 图片
一.制作圆角图片 运行Photoshop CS3,打开一张图用来制作圆角图片. 选择圆角矩形工具 在圆角矩形工具中选择路径选项 圆角矩形的半径,可以设置为20-30 在图片中拉出圆角 在右下角的图层面 ...
- PS如何制作圆角矩形图片
一.制作圆角图片 运行Photoshop CS3,打开一张图用来制作圆角图片. 选择圆角矩形工具 在圆角矩形工具中选择路径选项 圆角矩形的半径,可以设置为20-30 在图片中拉出圆角 在右下角的图层面 ...
- 微信小程序使用canvas绘制圆角矩形在Android:变形、锯齿
这两天用小程序实现分享生成海报,那我的手机测的一直没问题,结果后来用同事的小米测发现:画的图形缺个角,锯齿形的,根据小程序社区回复:使用ctx.arc + ctx.lineTo就能避免Android错 ...
- css制作圆角矩形,CSS绘制圆角矩形图形的效果
我们在给矩形的四角进行圆角处理时,我们早期,都是采用片图来完成,这无疑是给网页的加载增加了负担,大量的图片载入在网页里,流量消耗,对手机用户是一刺痛的.给网页及APP的加载速度,无疑是我们一直研究的方 ...
- android开源项目---RoundedImageView制作圆角矩形,椭圆形以其圆形控件
一.项目概述 在项目中美工提供给我们的图片通常是矩形的,我们如何把矩形的图片做成圆角矩形.椭圆形以其圆形效果的图形显示效果,这就是我这篇文章要讲的内容. 效果如下: 我这里使用的是开源项目 Roun ...
- unity 使用超椭圆方程对图片进行裁切制作圆角矩形
今天无意间在网上发现了一个公式,叫做超椭圆方程,效果就是圆角矩形: 原文地址: http://blog.csdn.net/tom_221x/article/details/50924154 原文中是使 ...
最新文章
- McAfee ENS
- SqlCommand类,在与数据库交互式一定要用到的属性
- MySQL和PostgreSQL的常用语法差异
- Java调用跟踪系统_Tracer:在分布式系统中的调用跟踪和日志相关
- Objective-C语法快速参考
- php读取gitlab用户信息,gitlab api获取所有用户的记录
- AtomicStampedReference解决CAS的ABA问题
- VXLAN配置实例(二)——VXLAN跨子网互通
- 《我是一只IT小小鸟》读书笔记
- 回溯法、动态规划法——牛妹的蛋糕
- 交换机端口详细配置Trunk
- Python 爬虫学习笔记三:多页内容爬取内容分析及格式化
- 街霸四高难度连技模式全攻略
- ccid linux,在Linux环境下搭建CCID测试环境
- Gilt如何将微服务部署到AWS环境,介绍ION-Roller
- 【SAP】ABAP开发——ALV展示后字段的下划线连接
- android rgmap,Android版的数字地质填图系统开始应用测试
- linux fdisk 挂盘
- HashMap源码阅读启读
- 纯前端实现—抽奖小游戏
热门文章
- mysql数据库设计教材_mySQL教程 第1章 数据库设计
- bzoj3772: 精神污染
- Keras实现小数量集图片分类——6类别Birds数据集分类
- Fxfactory插件:复古电影调色插件Sheffield Softworks Vintage
- 最少多少步才能逮住兔子
- 杂货机器人翻车实录:会被路人“吓”到,还会跟错主人!3千美元怕是买了个寂寞?
- Excel怎么将一列数据合并到一个单元格中
- Airdrop式社交:富友,你的airdrop没关
- 用Python获取磁力种子
- 论文阅读:SCENE TRANSFORMER: A UNIFIED ARCHITECTUREFOR PREDICTING MULTIPLE AGENT TRAJECTORIES