我的编程空间,编程开发者的网络收藏夹
学习永远不晚

HTML5中的Canvas的常用线条属性值是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

HTML5中的Canvas的常用线条属性值是什么

本篇文章给大家分享的是有关HTML5中的Canvas的常用线条属性值是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

线条属性概述
线条的属性共有以下四个:
1、lineCap属性
lineCap 定义上下文中线的端点,可以有以下 3 个值。

butt:默认值,端点是垂直于线段边缘的平直边缘。
round:端点是在线段边缘处以线宽为直径的半圆。
square:端点是在选段边缘处以线宽为长、以一半线宽为宽的矩形。

2、 lineJoin属性
lineJoin 定义两条线相交产生的拐角,可将其称为连接。在连接处创建一个填充三角形,可以使用 lineJoin 设置它的基本属性。

miter:默认值,在连接处边缘延长相接。miterLimit 是角长和线宽所允许的最大比例(默认是 10)。
bevel:连接处是一个对角线斜角。
round:连接处是一个圆。

3、线宽
lineWidth 定义线的宽度(默认值为 1.0)。


4、笔触样式
strokeStyle 定义线和形状边框的颜色和样式。
后面两个前面已经说过了,这里我们着重来看看前两个属性。
线条的帽子lineCap

废话不多说,直接上代码看效果。

JavaScript Code复制内容到剪贴板

  1. <!DOCTYPE html>   
    <html lang="zh">   
    <head>   
        <meta charset="UTF-8">   
        <title>线条的帽子</title>   
    </head>   
    <body>   
    <div id="canvas-warp">   
        <canvas id="canvas" style="border: 1px solid #aaaaaa; display: block; margin: 50px auto;">   
            你的浏览器居然不支持Canvas?!赶快换一个吧!!   
        </canvas>   
    </div>   
      
    <script>   
        window.onload = function(){   
            var canvas = document.getElementById("canvas");   
            canvas.width = 800;   
            canvas.height = 600;   
            var context = canvas.getContext("2d");   
      
            context.lineWidth = 50;   
            context.strokeStyle = "#1BAAAA";   
      
            context.beginPath();   
            context.moveTo(100,100);   
            context.lineTo(700,100);   
            context.lineCap = "butt";   
            context.stroke();   
      
            context.beginPath();   
            context.moveTo(100,300);   
            context.lineTo(700,300);   
            context.lineCap = "round";   
            context.stroke();   
      
            context.beginPath();   
            context.moveTo(100,500);   
            context.lineTo(700,500);   
            context.lineCap = "square";   
            context.stroke();   
      
            //下面画两个基准线方便观察   
            context.lineWidth = 3;   
            context.strokeStyle = "black";   
      
            context.beginPath();   
            context.moveTo(100,0);   
            context.lineTo(100,600);   
            context.moveTo(700,0);   
            context.lineTo(700,600);   
            context.stroke();   
        }   
    </script>   
    </body>   
    </html>

运行结果:
HTML5中的Canvas的常用线条属性值是什么

这里我还做了两条平行线做一下参考,这样一眼就能看清lineCap三个值的特点。但要注意,这个帽子只在线条的端点处起作用,哪怕是折点很多的折线,也仅仅是在开始和终止的两个端点带帽子。如果想改变线条折点(两个线段的连接处)的样式,那就要用到下面的lineJoin属性。
线条的连接lineJoin

废话不多说,直接上代码看效果。这段代码改自4-3,只是设置了一下连接的属性。

JavaScript Code复制内容到剪贴板

  1. <!DOCTYPE html>   
    <html lang="zh">   
    <head>   
        <meta charset="UTF-8">   
        <title>线条的连接</title>   
    </head>   
    <body>   
    <div id="canvas-warp">   
        <canvas id="canvas" style="border: 1px solid #aaaaaa; display: block; margin: 50px auto;">   
            你的浏览器居然不支持Canvas?!赶快换一个吧!!   
        </canvas>   
    </div>   
      
    <script>   
        window.onload = function(){   
            var canvas = document.getElementById("canvas");   
            canvas.width = 800;   
            canvas.height = 600;   
            var context = canvas.getContext("2d");   
      
            context.beginPath();   
            context.moveTo(100,100);   
            context.lineTo(300,300);   
            context.lineTo(100,500);   
            context.lineJoin = "miter";   
            context.lineWidth = 20;   
            context.strokeStyle = "red";   
            context.stroke();   
      
            context.beginPath();   
            context.moveTo(300,100);   
            context.lineTo(500,300);   
            context.lineTo(300,500);   
            context.lineJoin = "bevel";   
            context.lineWidth = 20;   
            context.strokeStyle = "blue";   
            context.stroke();   
      
            context.beginPath();   
            context.moveTo(500,100);   
            context.lineTo(700,300);   
            context.lineTo(500,500);   
            context.lineJoin = "round";   
            context.lineWidth = 20;   
            context.strokeStyle = "black";   
            context.stroke();   
        }   
    </script>   
    </body>   
    </html>

运行结果:
HTML5中的Canvas的常用线条属性值是什么

看不清的童鞋自己放大网页或者自己将代码的线宽调宽一点。
这里有一个很隐蔽的属性,就是当lineJoin设置为miter时(默认),会解锁一个成绩,可以使用miterLimit属性。
举个例子看看。

JavaScript Code复制内容到剪贴板

  1. <!DOCTYPE html>   
    <html lang="zh">   
    <head>   
        <meta charset="UTF-8">   
        <title>miterLimit</title>   
    </head>   
    <body>   
    <div id="canvas-warp">   
        <canvas id="canvas" style="border: 1px solid #aaaaaa; display: block; margin: 50px auto;">   
            你的浏览器居然不支持Canvas?!赶快换一个吧!!   
        </canvas>   
    </div>   
      
    <script>   
        window.onload = function(){   
            var canvas = document.getElementById("canvas");   
            canvas.width = 800;   
            canvas.height = 600;   
            var context = canvas.getContext("2d");   
      
            context.beginPath();   
            context.moveTo(100,100);   
            context.lineTo(300,300);   
            context.lineTo(100,500);   
            context.lineJoin = "miter";   
            context.miterLimit = 10;   
            context.lineWidth = 5;   
            context.strokeStyle = "red";   
            context.stroke();   
      
            context.beginPath();   
            context.moveTo(300,200);   
            context.lineTo(500,300);   
            context.lineTo(300,400);   
            context.lineJoin = "miter";   
            context.miterLimit = 10;   
            context.lineWidth = 5;   
            context.strokeStyle = "blue";   
            context.stroke();   
      
            context.beginPath();   
            context.moveTo(500,290);   
            context.lineTo(700,300);   
            context.lineTo(500,310);   
            context.lineJoin = "miter";   
            context.miterLimit = 10;   
            context.lineWidth = 5;   
            context.strokeStyle = "black";   
            context.stroke();   
        }   
    </script>   
    </body>   
    </html>

运行结果:
HTML5中的Canvas的常用线条属性值是什么

会发现,这个miterLimit规定了一个自动填充连接点的极限值。如果超过了这个值,会导致lineJoin属性失效,会从 miter 变成 bevel。可以看出来,这个值和线宽以及夹角有关,具体是啥关系。看下图。
HTML5中的Canvas的常用线条属性值是什么

可以看到,关系有点复杂。有兴趣的小伙伴可以推导一下这个值与线宽、夹角的函数关系。其实,大多时候用不到这个隐藏属性,即便用到了也是凭感觉写个数然后不满意再调试即可。
高级线段绘制举例
实际在画布上绘制线段时,会有一些奇怪的现象发生,这里融合本节课学到的两个线段的属性讲解一个。

JavaScript Code复制内容到剪贴板

  1. <!DOCTYPE html>   
    <html lang="zh">   
    <head>   
        <meta charset="UTF-8">   
        <title>miterLimit</title>   
    </head>   
    <body>   
    <div id="canvas-warp">   
        <canvas id="canvas" style="border: 1px solid #aaaaaa; display: block; margin: 50px auto;">   
            你的浏览器居然不支持Canvas?!赶快换一个吧!!   
        </canvas>   
    </div>   
      
    <script>   
        window.onload = function(){   
            var canvas = document.getElementById("canvas");   
            canvas.width = 800;   
            canvas.height = 600;   
            var context = canvas.getContext("2d");   
      
            // 实例1: 圆形端点,斜角连接,在画布左上角   
            context.beginPath();   
            context.moveTo(0,0);   
            context.lineTo(180,0);   
            context.lineTo(180,180);   
            context.lineJoin = 'bevel';   
            context.lineCap = 'round';   
            context.lineWidth = 10;   
            context.strokeStyle = "red";   
            context.stroke();   
      
            // 实例2: 圆形端点,斜角连接,不在画布左上角   
            context.beginPath();   
            context.moveTo(300,200);   
            context.lineTo(480,200);   
            context.lineTo(480,380);   
            context.lineJoin = 'bevel';   
            context.lineCap = 'round';   
            context.lineWidth = 10;   
            context.strokeStyle = "blue";   
            context.stroke();   
      
            // 实例3: 平直端点,圆形连接,不在画布左上角   
            context.beginPath();   
            context.moveTo(600,400);   
            context.lineTo(780,400);   
            context.lineTo(780,580);   
            context.lineJoin = 'round';   
            context.lineCap = 'butt';   
            context.lineWidth = 10;   
            context.strokeStyle = "black";   
            context.stroke();   
        }   
    </script>   
    </body>   
    </html>

运行结果:
HTML5中的Canvas的常用线条属性值是什么

这 3 个线段和连接的实例有助于说明在画布上绘制线段时不同属性的组合。
实例 1 尝试从画布左上角开始绘制,结果发生了一个奇怪的现象。Canvas 路径在 x 轴和 y 轴方向上都绘制到了起点的外侧。由于这个原因实例 1 上面的线看起来要细些。另外,左上角水平部分中圆形端点也无法看到,它们都被绘制到了屏幕之外的负值坐标区域。此外,lineJoin 定义的对角线斜角也没有绘出。
实例 2 调整了例子 1 中出现的问题,将起始点离开左上角。这样就绘制出了完整的水平线,并且圆形 lineCap 和斜角 lineJoin 都被绘制出来了。
实例 3 显示了去掉 lineCap 设置后的默认端点效果,并且将 lineJoin 调整为圆角。

以上就是HTML5中的Canvas的常用线条属性值是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

HTML5中的Canvas的常用线条属性值是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

HTML5 placeholder属性的作用是什么

HTML5中的placeholder属性是用来给表单元素的输入框提供默认文本提示的。当用户点击输入框时,placeholder文本会自动消失,用户可以输入自己的内容。如果用户没有输入任何内容,输入框则会显示placeholder的文本提示。
2023-10-12

css3中background属性的8个属性值是什么

这篇文章主要介绍css3中background属性的8个属性值是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!CSS中background的属性值background-colorbackground-imageb
2023-06-08

HTML5 input type属性的作用是什么

HTML5的input元素可以使用type属性来指定不同的输入控件类型,用于控制用户输入的内容和格式。type属性的作用主要有以下几个方面:1. 控制输入框的外观和功能:type属性可以设置为不同的值,如"text"、"password"、
2023-10-12

css中的浮动属性值是什么

这篇“css中的浮动属性值是什么”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“css中的浮动属性值是什么”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来就让我们进入主题
2023-06-06

css属性中float属性的作用是什么

css中float属性的作用是控制元素移动,即会使元素向左或向右移动,其周围的元素也会重新排列;元素的水平方向浮动,意味着元素只能左右移动而不能上下移动;一个浮动元素会尽量向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
2023-05-14

java中field获取属性值的方法是什么

在Java中,要获取字段(field)的属性值,可以使用以下几种方法:1. 使用字段的getter方法:如果字段有对应的getter方法,可以直接通过调用该方法获取属性值。例如,如果有一个名为"age"的字段,可以使用"getAge()"方
2023-09-25

SpringBoot属性配置中获取值的方式是什么

这篇文章主要介绍“SpringBoot属性配置中获取值的方式是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot属性配置中获取值的方式是什么”文章能帮助大家解决问题。Spring
2023-06-29

编程热搜

目录