当前位置: 首页 > news >正文

canvas_3_绘制弧形

话不多说,上代码!!

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> canvas { border: 1px solid #000; } </style> </head> <!-- 绘制弧形有两种方法 arc(x, y, r, sAngle, eAngle, anticlockwise); 以(x, y)为圆心, r为半径,从sAngle 的弧度开始 到 eAngle的弧度结束,0 弧度是指的 x 轴正方向 anticlockwise的值为布尔值, false 表示顺时针,true表示逆时针 radians=(Math.PI/180)*degrees //角度转换成弧度 arcTo(x1, y1, x2, y2, radius): 根据给定的控制点和半径画一段圆弧,最后再以直线连接两个控制点。 stroke() 通过线条来绘制图形轮廓 fill() 通过填充路径的内容区域生成实心的图形 --> <body> <canvas id="can1" width="500" height="300"></canvas> <script> (() => { let canvas = document.getElementById("can1") let ctx = canvas.getContext("2d") ctx.beginPath() ctx.arc(50, 50, 40, 0, Math.PI / 2, false); ctx.stroke(); ctx.beginPath() ctx.arc(150, 50, 40, 0, -Math.PI / 2, true); ctx.closePath() ctx.stroke(); ctx.beginPath(); ctx.arc(50, 150, 40, -Math.PI / 2, Math.PI / 2, false); ctx.fill(); ctx.beginPath(); ctx.arc(150, 150, 40, 0, Math.PI, false); ctx.fill(); })() </script> <canvas id="can2" width="500" height="300"></canvas> <script> (() => { let canvas = document.getElementById("can2") let ctx = canvas.getContext("2d") ctx.beginPath(); ctx.moveTo(50, 50); //参数1、2:控制点1坐标 参数3、4:控制点2坐标 参数5:圆弧半径 ctx.arcTo(200, 50, 200, 200, 100); ctx.lineTo(200, 200) ctx.stroke(); ctx.beginPath(); ctx.rect(50, 50, 10, 10); ctx.rect(200, 50, 10, 10) ctx.rect(200, 200, 10, 10) ctx.fill() })() </script> </body> </html>

http://www.jsqmd.com/news/446881/

相关文章:

  • linux-centos常用指令、tar.gz解压、mv重命名、cp复制、ss -ltnp、curl测试任意端口网络是否可达等
  • 女生必看!用OpenClaw龙虾当你的24小时免费助理,职场、生活效率翻倍,做自己的女王!
  • 2026年宜昌两天一夜游路线权威榜单:十大精品路线深度评测与排位赛 - 品牌推荐
  • 软考知识总结
  • python pip 更新
  • MySQL为什么有了redolog还需要double write buffer?
  • 实习面经摘录回答(四)
  • CPU中央处理器(下)
  • 2026年留学生求职必看:中国留学生求职机构选型指南与适配场景全解析 - 品牌推荐
  • vue+elementui完美模拟pc版快手实现短视频,含短视频详情播放
  • TeXLive2023 pdflatex编译eps图像,出现错误的问题
  • 2026年用户口碑最佳的中国留学生求职机构推荐:五家真实服务体验与成果对比 - 品牌推荐
  • android scrollview嵌套webview,滚动冲突解决
  • 2026年中国留学生求职机构深度测评:基于海内外资源覆盖的五维战力解析 - 品牌推荐
  • 第二:Jmeter - 环境搭建
  • 2026年北京审计事务所深度测评:基于上市公司服务与跨境业务能力的五维对比 - 品牌推荐
  • 2026年游客口碑最好的宜昌两天一夜游路线推荐:五大真实体验与避坑对比 - 品牌推荐
  • xLua实现背包的热更新实践
  • Web前端之微信小程实现上下左右全向滑动切换、复杂解构、bindtouchstart、bindtouchend、parseInt
  • 第一:Jmeter-JDK安装和环境变量配置
  • 2026年隐私安全充电宝品牌深度测评:五维安全技术全解析与实战对比 - 品牌推荐
  • 前端「页面懒加载」
  • 软件工程:职业全景与前景深度解析 - 教程
  • 2026年短途度假必看:宜昌两天一夜游路线选型指南与场景化适配攻略 - 品牌推荐
  • 互联网大厂Java面试剧情:内容社区场景下Spring Boot/微服务/AI技术全解
  • Web前端之vue+element-puls的el-form-item实现label和内容换行、同时具有多个类名才起作用的条件样式写法、css类名条件判断、多条件选择器、样式选择器、initial
  • odoo开发中碰到的奇奇怪怪的问题(持续更新)
  • 03 常见服务器的对比
  • NViST 运行笔记
  • 小米笔记本开机提示:no bootable device -- insert boot disk and press any key