canvas设置线条样式(宽度,端点形态、拐点样式、虚线)

这篇具有很好参考价值的文章主要介绍了canvas设置线条样式(宽度,端点形态、拐点样式、虚线)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

canvas设置线条样式(宽度,端点形态、拐点样式、虚线),# canvas示例教程100+,canvas线样式,canvas虚线

查看专栏目录

canvas示例教程100+专栏,提供canvas的基础知识,高级动画,相关应用扩展等信息。canvas作为html的一部分,是图像图标地图可视化的一个重要的基础,学好了canvas,在其他的一些应用上将会起到非常重要的帮助。

线条样式

canvas是线条样式主要表现为以下这几个方面

  • lineWidth: 设置线条宽度。
  • lineCap: 设置线条末端样式。
  • lineJoin: 设定线条与线条间接合处的样式。
  • miterLimit: 限制当两条线相交时交接处最大长度。
  • setLineDash() 设置虚线、点划线等。

lineWidth

值必须为正数,默认值为 1

let canvas = document.getElementById(‘dajianshi’);
let ctx = canvas.getContext(‘2d’)
ctx.moveTo(10, 10)
ctx.lineWidth = 10
ctx.lineTo(10, 80)
ctx.stroke()

lineCap

lineGap 有三个取值:butt、round、square,默认值为 butt.
canvas设置线条样式(宽度,端点形态、拐点样式、虚线),# canvas示例教程100+,canvas线样式,canvas虚线
中间的 lineGap 值为 round 左边的为 butt 右边的为 square。其中两条蓝色的两条线为辅助线,让三条垂直线条的区别更加明显。它们的区别主要体现在两个方面: + butt 和 square 的端点是直角拐点,round 的端点是一个圆弧 + 在起点、终点都在辅助线上的情况下,round 和 square 会在原来的起点和终点的基础上分别延伸半个线条宽度的距离,round 延伸的是直径为线宽的半圆,square 延伸的是一个宽为线宽高为线宽一半的矩形。

lineJoin

设置线段拐点处的样式。它有三个取值:round、bevel、miter(默认值)

canvas设置线条样式(宽度,端点形态、拐点样式、虚线),# canvas示例教程100+,canvas线样式,canvas虚线
根据 lineJoin 的不同取值绘制三条折线线段。如上图,最上面的路径 lineJoin 值为 round,中间的为 bevel,最下面的为 miter。红色的圆为辅助圆,直观的表现出 round 的连接点外侧为一个圆弧。

miterLimit

语法:

context.miterLimit=number;
正数。规定最大斜接长度。默认值为10

miterLimit 属性设置或返回最大斜接长度。斜接长度指的是在两条线交汇处内角和外角之间的距离。只有当 lineJoin 属性为 "miter" 时,miterLimit 才有效

为了避免斜接长度过长,我们可以使用 miterLimit 属性。如果斜接长度超过 miterLimit 的值,边角会以 lineJoin 的 “bevel” 类型来显示(图解 3)
canvas设置线条样式(宽度,端点形态、拐点样式、虚线),# canvas示例教程100+,canvas线样式,canvas虚线

设置点划线。

ctx.setLineDash([])

如果数组内为空,则为一条直线;
如果数字内为奇数个,则循环,如[1,2,3] 模式将为[1,2,3,1,2,3,1,2,3…] 奇数位为线段宽度;偶数位为间隔的宽度。
如果数字内为偶数个,也是循环如[2,5]模式将为[2,5,2,5…]

虚线绘制,涉及到 setLineDash 方法lineDashOffset 属性。setLinedash 接受一个数组用于设置虚线线段和间隙的宽度,lineDashOffset 用于设置相对于虚线初始位置的偏移量。
canvas设置线条样式(宽度,端点形态、拐点样式、虚线),# canvas示例教程100+,canvas线样式,canvas虚线文章来源地址https://www.toymoban.com/news/detail-824842.html

let canvas = document.getElementById('canvas')
let ctx = canvas.getContext('2d');
function drawDash(){
    ctx.setLineDash([4, 2])
    ctx.lineDashOffset = 0
    ctx.strokeRect(10, 10, 100, 40)
    ctx.setLineDash([8, 4])
    ctx.lineDashOffset = 0 
    ctx.strokeRect(10, 60, 100, 40)
}
drawDash()

canvas基本属性

属性 属性 属性
canvas fillStyle filter
font globalAlpha globalCompositeOperation
height lineCap lineDashOffset
lineJoin lineWidth miterLimit
shadowBlur shadowColor shadowOffsetX
shadowOffsetY strokeStyle textAlign
textBaseline width

canvas基础方法

方法 方法 方法
arc() arcTo() addColorStop()
beginPath() bezierCurveTo() clearRect()
clip() close() closePath()
createImageData() createLinearGradient() createPattern()
createRadialGradient() drawFocusIfNeeded() drawImage()
ellipse() fill() fillRect()
fillText() getImageData() getLineDash()
isPointInPath() isPointInStroke() lineTo()
measureText() moveTo() putImageData()
quadraticCurveTo() rect() restore()
rotate() save() scale()
setLineDash() setTransform() stroke()
strokeRect() strokeText() transform()
translate()

到了这里,关于canvas设置线条样式(宽度,端点形态、拐点样式、虚线)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 用HTML5 Canvas创造视觉盛宴——动态彩色线条效果

    目录 一、程序代码 二、代码原理 三、运行效果 该代码利用Canvas的绘图功能和数学函数,创建了一个动态的彩色线条效果,能够根据鼠标的移动和键盘的操作呈现不同的视觉效果。它使用了数学函数来计算线条的坐标和角度,并根据鼠标位置和窗口大小进行动态调整。代码首

    2024年02月20日
    浏览(33)
  • 【CSS】盒子边框 ① ( 网页布局本质 | 盒子模型 | 盒子边框 Border | border-width 宽度 | border-style 边框样式 | 边框颜色 | 边框设置综合写法 )

    构建一个网页 , 首先 , 创建盒子模型 , 设置盒子的大小和摆放位置 , 下图中红色矩形框就是盒子模型 ; 然后 , 将 文本 , 图片 , 链接 , 表单 等网页元素 , 按照一定的样式 , 填充进盒子中 , 就形成了我们看到的网页 ; 盒子 中 还可以嵌套 若干盒子 ; HTML 的 一个布局 可以看做一个

    2024年02月04日
    浏览(34)
  • echarts折线图颜色-折线图颜色设置-线条设置

    原图: 需要实现的效果: 需要设置xAxis和yAxis里的 axisLine 以及axisTick 图背景的横向每一条白线都改变颜色,需要设置 yAxis的splitLine里的lineStyle 只需要在 series 中添加 smooth: true ,即可 示例代码 smooth 还有其他的值 当type为line时 smooth 表示 是否平滑曲线显示。 如果是

    2024年02月16日
    浏览(39)
  • Vuepress样式修改内容宽度

    1、相关文件 一般所在目录node_modules@vuepresstheme-defaultstyleswrapper.styl 2、调整宽度,截图中是已经调整好的,在我电脑上显示刚刚好。

    2024年02月09日
    浏览(25)
  • CSS给元素添加边框(样式、颜色、宽度)

    CSS边框属性允许你指定一个元素边框的样式和颜色, 和边框宽度。 可以使用 border 属性将边框样式,颜色,和宽度 一起设置。 如果不设置其中的某个值,也不会出问题,比如 border: solid #ff0000; 也是允许的。 边框样式属性指定要显示什么样的边界。除了在 border 属性里面设置边框

    2024年01月21日
    浏览(33)
  • Spring Cloud 微服务中 gateway 网关如何设置健康检测端点

    主要是为了让 k8s 识别到网关项目已经就绪,但是又不想在里面通过 Controller 实现。因为在 Controller 中这样做并不是最佳实践,因为 Gateway 的设计初衷是专注于路由和过滤,而不是业务逻辑的处理。 在 Gateway 中配置健康检查端点可以通过以下方式进行(可根据实际需求进行扩

    2024年01月17日
    浏览(35)
  • 关于QGroupBox在设置边框线条后Title下沉问题的解决方法

    这个问题遇到之后查了网上的一些资料,大都说的模糊不清,只说设置margin,没细说如何设置.本文详细记录一下我解决该问题的步骤. 当我在UI编辑器里添加了一个QGroupBox控件,并且设置了Title标题. 此时可以看到标题和隐藏的边框线条是垂直居中对齐的状态 紧接着在其styleSheet里设

    2024年02月16日
    浏览(84)
  • uni-app:js修改元素样式(宽度、外边距)

    效果 代码 1、在 view 元素上添加一个 ref 属性 ,用于在JavaScript代码中获取对该元素的引用:view ref=\\\" myView \\\" id=\\\"mybox\\\"/view 2、获取元素引用 :const viewElement = this.$refs. myView .$el; 3、修改元素宽度:viewElement.style.width = \\\'100px\\\'; 4、修改元素左外边距:viewElement.style.marginLeft = \\\'20px\\\'; 这种

    2024年02月07日
    浏览(36)
  • canvas绘制不同样式的五角星(图文示例)

    查看专栏目录 canvas实例应用100+专栏,提供canvas的基础知识,高级动画,相关应用扩展等信息。canvas作为html的一部分,是图像图标地图可视化的一个重要的基础,学好了canvas,在其他的一些应用上将会起到非常重要的帮助。 如何使用canvas绘制不同样式的五角星呢?这里面要确

    2024年01月18日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包