lineJoin是线条与线条连接时的效果

lineJoin有如下参数

miter(default)

bevel

round

下面对各个参数进行展示!

默认情况下:

源码如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><canvas id="canvas" style="border:1px solid #aaa;display:block;margin:50px auto;">当前浏览器不支持Canvas,请更换浏览器后再试
</canvas><script>window.onload = function() {let canvas = document.getElementById("canvas");canvas.width = 800;canvas.height = 800;let context = canvas.getContext("2d");context.lineWidth = 10;drawStar(context, 150, 300, 400, 400, 0);}function drawStar(cxt, r, R, x, y, rot){cxt.beginPath();for(let i = 0; i < 5; i++){cxt.lineTo(Math.cos((18 + i * 72 - rot) / 180 * Math.PI) * R + x,-Math.sin((18 + i * 72- rot) / 180 * Math.PI) * R + y);cxt.lineTo(Math.cos((54 + i * 72 - rot) / 180 * Math.PI) * r + x,-Math.sin((54 + i * 72 - rot) / 180 * Math.PI) * r + y);}cxt.closePath();cxt.stroke();}</script></body>
</html>

当lineJoin为bevel时

源码如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><canvas id="canvas" style="border:1px solid #aaa;display:block;margin:50px auto;">当前浏览器不支持Canvas,请更换浏览器后再试
</canvas><script>window.onload = function() {let canvas = document.getElementById("canvas");canvas.width = 800;canvas.height = 800;let context = canvas.getContext("2d");context.lineWidth = 10;context.lineJoin = "bevel";drawStar(context, 150, 300, 400, 400, 0);}function drawStar(cxt, r, R, x, y, rot){cxt.beginPath();for(let i = 0; i < 5; i++){cxt.lineTo(Math.cos((18 + i * 72 - rot) / 180 * Math.PI) * R + x,-Math.sin((18 + i * 72- rot) / 180 * Math.PI) * R + y);cxt.lineTo(Math.cos((54 + i * 72 - rot) / 180 * Math.PI) * r + x,-Math.sin((54 + i * 72 - rot) / 180 * Math.PI) * r + y);}cxt.closePath();cxt.stroke();}</script></body>
</html>

当个lineJoin为round时

源码如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><canvas id="canvas" style="border:1px solid #aaa;display:block;margin:50px auto;">当前浏览器不支持Canvas,请更换浏览器后再试
</canvas><script>window.onload = function() {let canvas = document.getElementById("canvas");canvas.width = 800;canvas.height = 800;let context = canvas.getContext("2d");context.lineWidth = 10;context.lineJoin = "round";drawStar(context, 150, 300, 400, 400, 0);}function drawStar(cxt, r, R, x, y, rot){cxt.beginPath();for(let i = 0; i < 5; i++){cxt.lineTo(Math.cos((18 + i * 72 - rot) / 180 * Math.PI) * R + x,-Math.sin((18 + i * 72- rot) / 180 * Math.PI) * R + y);cxt.lineTo(Math.cos((54 + i * 72 - rot) / 180 * Math.PI) * r + x,-Math.sin((54 + i * 72 - rot) / 180 * Math.PI) * r + y);}cxt.closePath();cxt.stroke();}</script></body>
</html>

这里当个lineJoin为miter时,一代miterlimit超过10,就会默认改变为bevel。重新设置如下:

context.miterLimit = 20

miterLimit默认值为10

miterLimit的值如下:

canvas笔记-lineJoin和miterLimit的使用相关推荐

  1. html5 canvas修改颜色,html5 canvas 笔记二(添加样式和颜色)

    色彩 Colors fillStyle = color设置图形的填充颜色.strokeStyle = color设置图形轮廓的颜色. 透明度 Transparency globalAlpha = tr ...

  2. html5菜鸟教程canvas笔记

    简单介绍: canvas(图形容器) 标签是一个默认没有边框和内容的矩形画布,并且通过js实现绘制,js脚本先获取标签的id然后进行控制canvas,比如:1. <canvas id=" ...

  3. canvas笔记-画一片星空

    程序运行截图如下: 源码如下: <!DOCTYPE html> <html lang="en"> <head><meta charset= ...

  4. html语言填充没有只有描边,HTML5 Canvas笔记——交互绘制文本(描边、填充、阴影、渐变填充、图案填充、文本的属性设置)...

    (1)文本的描边.填充.阴影 (2)文本的渐变填充 (3)文本的图案填充 (4)文本的属性设置及效果呈现 交互绘制文本.html 交互绘制文本 body { background: #eeeeee; ...

  5. html5 canvas 笔记五(合成与裁剪)

    组合 Compositing globalCompositeOperation syntax: globalCompositeOperation = type 注意:下面所有例子中,蓝色方块是先绘制的 ...

  6. canvas笔记-画三角形并计算其外心(含算法其他绘图框架类似)

    程序运行截图如下: 源码如下: <!DOCTYPE html> <html lang="en"> <head><meta charset= ...

  7. canvas笔记-文本(fillText)旋转(rotate)

    这里fillText直接使用rotate会有问题.估计是旋转中心有问题. 正确的逻辑为: 先使用translate移动中心点在文本起始位置,如何在0,0处fillText即可. 如果要在字符串中心进行 ...

  8. canvas笔记-canvas加载图片及放缩及加水印(两canvas同时使用)

    首先是图片放缩 程序运行截图如下: 拉动滑动条: 源码如下: <!DOCTYPE html> <html lang="en"> <head>&l ...

  9. canvas笔记-canvas中用户与图形交互

    运行截图如下: 点击某个圆后: 代码如下: <!DOCTYPE html> <html lang="en"> <head><meta ch ...

最新文章

  1. LEGO EV3 通信开发者套件
  2. python笔记之序列(dict的基本使用和常用操作)
  3. 每日一笑 | 如果把大脑看成CPU的话...
  4. 5922. 统计出现过一次的公共字符串
  5. android 自定义桌面图标大小设置,手机桌面图标尺寸可以改?OriginOS重新定义个性化...
  6. oracle视图无法使用rowid,请问:无法从没有键值保存表的连接视图中选择 ROWID 这个是什么原因啊?...
  7. SM系列国密算法(转)
  8. 从Demo到Engine(二) -- Render Queue Sort
  9. 数据库设计经验浅谈(3,4,5)转载
  10. Atitit 知识聚合的方法大总结 目录 1. 什么是聚合 汇聚 1 2. 聚合化应用场景 2 2.1. 一站式 2 3. 知识聚合的历史与趋势
  11. 指针 是否相同_【变电小课堂】MF47指针式万用表操作指南
  12. Windows XP SP3安装后瘦身法
  13. Brocade 光纤交换机配置命令
  14. 多行文字cad提取数据_利用CAD自带的数据提取功能手动提取假表格至Excel
  15. 通信工程是计算机类还是电子信息类公考,通信工程属于电子信息类吗
  16. 达摩院高清人像美肤模型ABPN CVPR论文深入解读
  17. 游戏里的答题都有哪些类型
  18. 文华财经指标公式大全,通达信指标加密破解DLL加密防破解技术方法
  19. SQL中IF函数的使用
  20. Kafka Manager 云平台用户使用手册 didi / Logi-KafkaManager

热门文章

  1. 第七周项目4-计算一个程序猿的周工资
  2. Ubuntu下libvirt kvm配置
  3. Delphi中使用API将目录删除函数
  4. 学工在线新闻搜索引擎0.1 beta版
  5. 超适合小白的python新手教程
  6. 为什么说RESTful对程序员如此重要
  7. 葫芦全身都是宝的飞鸽传书2011
  8. 【源码】斗地主人机对战程序算法2012完整版
  9. 成为oa的飞鸽传书重要标准应用与开发平台
  10. 那个傻子的网站突然打不开虚拟光驱