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

网站建设覀金手指科杰全国公共建筑信息平台

网站建设覀金手指科杰,全国公共建筑信息平台,商丘app开发,浙江网站建设情况分析Canvas基础篇:虚线操作setLineDash和lineDashOffset详解 前言setLineDash()语法效果预览代码示例参数说明 lineDashOffset语法效果预览代码实现 结语 前言 在之前的文章中,我们如何设置线条的宽度、透明度、线帽等属性,本篇文章将讲述如何绘…

Canvas基础篇:虚线操作setLineDash和lineDashOffset详解

  • 前言
  • setLineDash()
    • 语法
    • 效果预览
    • 代码示例
    • 参数说明
  • lineDashOffset
    • 语法
    • 效果预览
    • 代码实现
  • 结语

前言

在之前的文章中,我们如何设置线条的宽度、透明度、线帽等属性,本篇文章将讲述如何绘制虚线。

setLineDash()

setLineDash():该方法接受一个数组,数组中的数值依次表示实线部分和空白部分的长度,两者交替绘制,形成一段虚线,其语法如下:

语法

ctx.setLineDash(segments);
segments是一个数组,数组中的偶数索引值代表实线部分的长度,奇数索引值代表空白部分的长度。要是数组的长度为奇数,那么这个数组会被复制一遍来形成偶数长度的数组。

效果预览

简单虚线

代码示例

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>简单虚线</title></head><body><canvas id="canvas" width="400" height="400"></canvas><script>const canvas = document.getElementById('canvas');const ctx = canvas.getContext('2d');ctx.setLineDash([5]);ctx.beginPath();ctx.moveTo(20, 20);ctx.lineTo(120, 20);ctx.stroke();</script></body>
</html>

参数说明

参数说明虚线形状
[]数组为空,绘制一条直线参数为空
[2]数组只有一个值,实线部分和空白部分的长度都为该值参数只有一个
[2,2]数组有两个相同值,和[2]效果相同参数为两个相同值
[5,2]数组有两个不同的值,实线部分长度为第一个值,空白部分长度为第二个值数组有两个不同的值
[10,5,5,10]参数有多个值,按照实线、空白、实线、空白…的顺序交替绘制数组有多个值

lineDashOffset

lineDashOffset:该属性属性用于设置虚线模式的起始偏移量,其语法如下:

语法

ctx.lineDashOffset = value;
value是一个数值,代表的是虚线模式的起始偏移距离,其单位为像素;如果value为正值,则虚线向左偏移;如果value为负值,则虚线向右偏移,我们先来看下面一段效果:

效果预览

虚线偏移

代码实现

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>虚线偏移</title>
</head><body><canvas id="canvas" width="400" height="400"></canvas><script>const canvas = document.getElementById('canvas');const ctx = canvas.getContext('2d');// 第一条线:无偏移ctx.setLineDash([10,10]);ctx.lineDashOffset = 0;ctx.beginPath();ctx.moveTo(20, 20);ctx.lineTo(320, 20);ctx.stroke();// 第二条线:正偏移ctx.setLineDash([10,10]);ctx.lineDashOffset = 5;ctx.beginPath();ctx.moveTo(20, 40);ctx.lineTo(320, 40);ctx.stroke();// 第三条线:负偏移ctx.setLineDash([10,10]);ctx.lineDashOffset = -5;ctx.beginPath();ctx.moveTo(20, 60);ctx.lineTo(320, 60);ctx.stroke();// 第四条线:正偏移(整周期)ctx.setLineDash([10,10]);ctx.lineDashOffset = 20; ctx.beginPath();ctx.moveTo(20, 80);ctx.lineTo(320, 80);ctx.stroke();</script>
</body>
</html>

结语

本文主要介绍了如何在图形中绘制虚线,对于文章中错误的地方或者有任何问题,欢迎在评论区留言分享!

http://www.dtcms.com/a/500731.html

相关文章:

  • 【Linux知识】Linux Service 重启策略 Restart 详解
  • Linux学习日记3:Write函数与Read函数
  • 哪些技术指标可以辅助判断布林带收窄后的变盘信号
  • 网站建设需要什么专业网站建设预计资金投入
  • 建站公司人员配置html网站制作答辩ppt
  • 盲盒抽卡机小程序开发实战:概率算法与风控体系深度解析
  • 结合其他技术指标(如MACD、RSI)来验证布林带的趋势信号
  • 广东建设协会网站个人网站效果图
  • 深圳网页服务开发与网站建设西安网络安全公司排名
  • 深圳免费建站页面
  • 网站互动推广滨州市住房和城乡建设部网站
  • 【MATLAB代码】AOA(到达角度)定位,二维平面下N个锚点定位(自适应基站数量),动态轨迹使用EKF滤波优化。附完整代码,订阅专栏后可查看
  • 互动营销是什么意思无锡短视频seo
  • 遵义营销型网站建设自己给公司做网站难不难
  • 基础知识复习(自用)
  • 浏览器开发CEF (十九)小红书商家版千帆订单抓取——东方仙盟元婴期
  • 单页面应用的网站搬瓦工建wordpress
  • 深圳网站建设设计门户制作
  • Kubernetes简介及部署
  • 肤契:全域协议版 九 血鉴录现世
  • 个人公司网站模板wordpress的搜索插件
  • zabbix监控进程、日志、mysql主从
  • MyBatis—增删查改操作
  • 扬州润扬交通建设集团网站做网站排名优化是怎么回事
  • 无锡企业推广网站网站建设策划书范文
  • 一个网站如何做双语安徽网络公司排名
  • 聊天室项目开发——安装并使用gtest库以及spdlog日志组件
  • 桐乡建设局网站智能建站服务平台
  • Altium Designer(AD24)View视图功能总结
  • 国产麒麟系统门禁主板--XC3576IC,以AI芯赋能多元生物识别生态