1.设置直线线帽的样式

  • 相关语法:ctx.lineCap,通过赋值形式来设置直线线帽的样式,他有以下3个值:
说明
butt 默认
round 圆形线帽
square 正方形线帽
<script>
var canvas = document.querySelector("canvas")
var ctx = canvas.getContext("2d") // 默认的直线
ctx.moveTo(50,50)
ctx.lineTo(250,50)
ctx.lineWidth = 30
ctx.stroke() // .lineCap = butt
ctx.beginPath()
ctx.moveTo(50,100)
ctx.lineTo(250,100)
ctx.strokeStyle = "yellow"
ctx.lineCap = "butt"
ctx.stroke() // .lineCap = round
ctx.beginPath()
ctx.moveTo(50,150)
ctx.lineTo(250,150)
ctx.strokeStyle = "red"
ctx.lineCap = "round"
ctx.stroke() // .lineCap = square
ctx.beginPath()
ctx.moveTo(50,200)
ctx.lineTo(250,200)
ctx.strokeStyle = "blue"
ctx.lineCap = "square"
ctx.stroke()
</script>

2.设置直线的拐点样式

  • 相关语法:ctx.lineJoin,通过赋值的形式来设置直线的拐点样式,他有3个可能的值:
说明
miter 尖的
round 圆的
bevel 平的
<script>
var canvas = document.querySelector("canvas")
var ctx = canvas.getContext("2d") // 默认的直线
ctx.moveTo(50,100)
ctx.lineTo(200,50)
ctx.lineTo(350,100)
ctx.lineWidth = 30
ctx.stroke() // lineJoin = "miter"
ctx.beginPath()
ctx.moveTo(50,150)
ctx.lineTo(200,100)
ctx.lineTo(350,150)
ctx.strokeStyle = "yellow"
ctx.lineJoin = "miter"
ctx.stroke() // lineJoin = "round"
ctx.beginPath()
ctx.moveTo(50,200)
ctx.lineTo(200,150)
ctx.lineTo(350,200)
ctx.strokeStyle = "red"
ctx.lineJoin = "round"
ctx.stroke() // lineJoin = "bevel"
ctx.beginPath()
ctx.moveTo(50,250)
ctx.lineTo(200,200)
ctx.lineTo(350,250)
ctx.strokeStyle = "blue"
ctx.lineJoin = "bevel"
ctx.stroke()
</script>

3.绘制虚线

  • 相关语法:setLineDash(arr)
  • 参数说明:它的参数是一个由数字组成的数组,虚线是实虚交替的,这个数组的元素用来描述实边长度和虚边的长度
  • 注意:一旦设置成虚线,后面的直线就会继承设置,结果全部绘制成虚线,想要取消,可以重新设置成setLineDash([1,0])
<script>
var canvas = document.querySelector("canvas")
var ctx = canvas.getContext("2d") // 默认直线绘制成实线
ctx.moveTo(50,50)
ctx.lineTo(300,50)
ctx.lineWidth = 3
ctx.stroke() // 虚线长度为0则绘制成实线
ctx.beginPath()
ctx.moveTo(50,100)
ctx.lineTo(300,100)
ctx.setLineDash([1,0])
ctx.stroke() // 设置虚线长度大于0
ctx.beginPath()
ctx.moveTo(50,150)
ctx.lineTo(300,150)
ctx.setLineDash([5,10])
ctx.stroke()
</script

canvas(二)直线样式和虚线的更多相关文章

  1. 8-2 canvas专题-线条样式

    8-2 canvas专题-线条样式 学习要点 对第五章知识进行简单的回顾和总结 进一步讲解canvas绘图相关的知识点 第八章内容介绍 在第八章中我们将对以前的知识进行简单的回顾,着重对canvas绘 ...

  2. css入门二-常用样式

    css入门二-常用样式总结 基本标签样式 背景色background-color 高度height; 宽度width; 边框对齐以及详细设定举例 width/*宽度*/: 80%; height/*高 ...

  3. canvas设置线条样式

    canvas设置线条样式 合法属性和方法 lineWidth = value 设置线宽 lineCap = type 设置线端点样式 lineJoin = type 设置线交合处样式 setLineD ...

  4. JS学习-给Canvas上下文设置样式

    给Canvas上下文设置样式 <canvas class="myCanvas" width="700" height="500"> ...

  5. 封装 用canvas绘制直线的函数--面向对象

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. ☀【canvas】直线 / 三角形 / 矩形 / 曲线 / 控制点 / 变换

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8& ...

  7. HTML5 Canvas自定义圆角矩形与虚线(Rounded Rectangle and Dash Line)

    HTML5 Canvas自定义圆角矩形与虚线(RoundedRectangle and Dash Line) 实现向HTML Canvas 2d context绘制对象中添加自定义的函数功能演示,如何 ...

  8. canvas绘制直线

    HTML5 <canvas>元素用于图形的绘制,该元素只是图形容器,必须使用javascript脚本绘制图形创建一个画布:<canvas id="myCanvas" ...

  9. 基于canvas二次贝塞尔曲线绘制鲜花

    canvas中二次贝塞尔曲线参数说明: cp1x:控制点1横坐标 cp1y:控制点1纵坐标 x: 结束点1横坐标 y:结束点1纵坐标 cp2x:控制点2横坐标 cp2y:控制点2纵坐标 z:结束点2横 ...

  10. 第155天:canvas(二)

    一.添加样式和颜色 ​ 在前面的绘制矩形章节中,只用到了默认的线条和颜色. ​ 如果想要给图形上色,有两个重要的属性可以做到. fillStyle = color 设置图形的填充颜色 strokeSt ...

随机推荐

  1. AI实战 | 领克汽车线上营销助手:全面功能展示与效果分析

    助手介绍 我就不自我介绍了,在我的智能体探索之旅中,很多人已经通过coze看过我的教程.今天,我专注于分享我所开发的一款助手--<领克汽车线上营销>. 他不仅仅是一个销售顾问的替身,更是一 ...

  2. [rCore学习笔记 027]地址空间

    写在前面 本随笔是非常菜的菜鸡写的.如有问题请及时提出. 可以联系:1160712160@qq.com GitHhub:https://github.com/WindDevil (目前啥也没有 引言 ...

  3. JavaScript——基础语法

    书写语法    输出语句    变量    数据类型    运算符        == 与 === 区别:       ==:         1.判断类型是否一样,如果不一样,则进行类型转换     ...

  4. Kubernetes基础(kube-apiserver?kube-controller-manager?kube-scheduler?kubelet?kube-proxy?kubectl?)(十一)

    一.kube-apiserver API Server 提供了资源对象的唯一操作入口,其它所有组件都必须通过它提供的 API 来操作资源数据.只有 API Server 会与 etcd 进行通信,其它 ...

  5. C#/.NET/.NET Core技术前沿周刊 | 第 7 期(2024年9.23-9.30)

    前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...

  6. 在Vue3中如何实现四种全局状态数据的统一管理?

    四种全局状态数据 在实际开发当中,会遇到四种全局状态数据:异步数据(一般来自服务端).同步数据.同步数据又分为三种:localstorage.cookie.内存.在传统的 Vue3 当中,分别采用不同 ...

  7. JDK线程池详解(全网最全-原理解析、源码详解)

    频繁创建新线程的缺点? 不受控风险 系统资源有限,每个人针对不同业务都可以手动创建线程,并且创建标准不一样(比如线程没有名字).当系统运行起来,所有线程都在疯狂抢占资源,毫无规则,不好管控. 另外,过 ...

  8. 探索 PCI 转 PMC 载板转接卡:连接不同接口的桥梁

    探索 PCI 转 PMC 载板转接卡:连接不同接口的桥梁 在计算机硬件领域,各种接口和总线标准不断演进,以满足日益增长的性能和功能需求.在这个过程中,不同接口之间的转换设备应运而生,其中 PCI 转 ...

  9. 使用 KubeEye 为你的 K8s 集群安全保驾护航

    作者:KaliArch(薛磊),某Cloud MSP服务商产品负责人,熟悉企业级高可用/高并发架构,包括混合云架构.异地灾,熟练企业DevOPS改造优化,熟悉Shell/Python/Go等开发语言, ...

  10. 2024 Navicat Premium 16+17安装教程(附激活方法)

    Navicat Premium,作为一款功能全面的集成数据库管理工具,无缝支持多样化的数据库类型,为用户带来前所未有的高效与便捷管理体验.它不仅涵盖了连接管理.数据导入导出.同步迁移.备份恢复等核心功 ...