<!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制作圆角矩形(包括填充矩形的功能)相关推荐

  1. canvas 圆角矩形填充_canvas制作圆角矩形(包括填充矩形的功能)

    canvas制作圆角矩形(包括填充矩形的功能) 您的浏览器不支持 HTML5 canvas 标签. window.onload = function() { var myCanvas = docume ...

  2. HTML5 Canvas自定义圆角矩形与虚线(Rounded Rectangle and Dash Line)

    HTML5 Canvas自定义圆角矩形与虚线(RoundedRectangle and Dash Line) 实现向HTML Canvas 2d context绘制对象中添加自定义的函数功能演示,如何 ...

  3. canvas应用——圆角矩形图片

    前段时间写了一个canvas应用--将方形图片处理为圆形 ,最近就想把这个完善一下,所以就再补充一个canvas的圆角矩形处理方式. 例子 你可以直接点击此处查看 例子 ,先一睹为快. 参数 参数 默 ...

  4. JavaScript 使用canvas绘制圆角矩形边框

    目录 分析 完整代码如下 前言 在react项目中需要用到绘制矩形填充, 因为直角矩形不够美观, 需要绘制圆角填充矩形 分析 Canvas并没有提供绘制圆角矩形的方法,但是通过观察,我们可以发现,其实 ...

  5. PS 如何制作 圆角矩形 图片

    一.制作圆角图片 运行Photoshop CS3,打开一张图用来制作圆角图片. 选择圆角矩形工具 在圆角矩形工具中选择路径选项 圆角矩形的半径,可以设置为20-30 在图片中拉出圆角 在右下角的图层面 ...

  6. PS如何制作圆角矩形图片

    一.制作圆角图片 运行Photoshop CS3,打开一张图用来制作圆角图片. 选择圆角矩形工具 在圆角矩形工具中选择路径选项 圆角矩形的半径,可以设置为20-30 在图片中拉出圆角 在右下角的图层面 ...

  7. 微信小程序使用canvas绘制圆角矩形在Android:变形、锯齿

    这两天用小程序实现分享生成海报,那我的手机测的一直没问题,结果后来用同事的小米测发现:画的图形缺个角,锯齿形的,根据小程序社区回复:使用ctx.arc + ctx.lineTo就能避免Android错 ...

  8. css制作圆角矩形,CSS绘制圆角矩形图形的效果

    我们在给矩形的四角进行圆角处理时,我们早期,都是采用片图来完成,这无疑是给网页的加载增加了负担,大量的图片载入在网页里,流量消耗,对手机用户是一刺痛的.给网页及APP的加载速度,无疑是我们一直研究的方 ...

  9. android开源项目---RoundedImageView制作圆角矩形,椭圆形以其圆形控件

    一.项目概述 在项目中美工提供给我们的图片通常是矩形的,我们如何把矩形的图片做成圆角矩形.椭圆形以其圆形效果的图形显示效果,这就是我这篇文章要讲的内容. 效果如下: 我这里使用的是开源项目  Roun ...

  10. unity 使用超椭圆方程对图片进行裁切制作圆角矩形

    今天无意间在网上发现了一个公式,叫做超椭圆方程,效果就是圆角矩形: 原文地址: http://blog.csdn.net/tom_221x/article/details/50924154 原文中是使 ...

最新文章

  1. McAfee ENS
  2. SqlCommand类,在与数据库交互式一定要用到的属性
  3. MySQL和PostgreSQL的常用语法差异
  4. Java调用跟踪系统_Tracer:在分布式系统中的调用跟踪和日志相关
  5. Objective-C语法快速参考
  6. php读取gitlab用户信息,gitlab api获取所有用户的记录
  7. AtomicStampedReference解决CAS的ABA问题
  8. VXLAN配置实例(二)——VXLAN跨子网互通
  9. 《我是一只IT小小鸟》读书笔记
  10. 回溯法、动态规划法——牛妹的蛋糕
  11. 交换机端口详细配置Trunk
  12. Python 爬虫学习笔记三:多页内容爬取内容分析及格式化
  13. 街霸四高难度连技模式全攻略
  14. ccid linux,在Linux环境下搭建CCID测试环境
  15. Gilt如何将微服务部署到AWS环境,介绍ION-Roller
  16. 【SAP】ABAP开发——ALV展示后字段的下划线连接
  17. android rgmap,Android版的数字地质填图系统开始应用测试
  18. linux fdisk 挂盘
  19. HashMap源码阅读启读
  20. 纯前端实现—抽奖小游戏

热门文章

  1. mysql数据库设计教材_mySQL教程 第1章 数据库设计
  2. bzoj3772: 精神污染
  3. Keras实现小数量集图片分类——6类别Birds数据集分类
  4. Fxfactory插件:复古电影调色插件Sheffield Softworks Vintage
  5. 最少多少步才能逮住兔子
  6. 杂货机器人翻车实录:会被路人“吓”到,还会跟错主人!3千美元怕是买了个寂寞?
  7. Excel怎么将一列数据合并到一个单元格中
  8. Airdrop式社交:富友,你的airdrop没关
  9. 用Python获取磁力种子
  10. 论文阅读:SCENE TRANSFORMER: A UNIFIED ARCHITECTUREFOR PREDICTING MULTIPLE AGENT TRAJECTORIES