canvas画布中beginPath和closePath的作用要点

news2024/10/6 20:28:48

1.画笔画完一个图案后,立即又回到了原点,所以下次如果没有beginPath,就会从原点重新开始

2.beginPath相当于让画笔从原点抬起,重新开始一个新路径,不重复走之前的路径,所以不会覆盖之前的路径

3.closePath相当于让画笔以最近的直线回到原点位置,会有路径

以下案例是画三条不一样的直线:

但是结果却出现了三条一样宽度的直线:宽度都是30

出现这种情况的原因:没有使用beginPath()

使用beginPath后的效果:

使用beginPath的代码:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
    </head>
    <body>
        <div>画三个不一样的直线</div>
        <canvas id="myCanvas" width="500" height="500"> </canvas>
    </body>
    <script>
        var canvas = document.getElementById('myCanvas')
        var ctx = canvas.getContext('2d')
        // lineWidth是改变线条的粗细,默认是一个像素
        ctx.moveTo(20, 50)
        ctx.lineTo(200, 50)
        ctx.lineWidth = 5
        ctx.stroke()
        // ctx.closePath()
        // 1.画笔画完一个图案后,立即又回到了原点,所以下次如果没有beginPath,就会从原点重新开始
        // 2.beginPath相当于让画笔从原点抬起,重新开始一个新路径,不重复走之前的路径,所以不会覆盖之前的路径
        // 3.closePath相当于让画笔以最近的直线回到原点位置,会有路径
        ctx.beginPath()
        ctx.moveTo(20, 100)
        ctx.lineTo(200, 100)
        ctx.lineWidth = 10
        ctx.stroke()
        // ctx.closePath()

        ctx.beginPath()
        ctx.moveTo(20, 150)
        ctx.lineTo(200, 150)
        ctx.lineWidth = 30
        ctx.stroke()
        // ctx.closePath()
    </script>
</html>

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1106691.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

通过IP地址查询避免电子招投标串标的方法

随着电子招投标的广泛应用&#xff0c;诚实和公平的竞争变得至关重要。然而&#xff0c;一些不道德的投标者可能试图串通以获取不正当的竞争优势。为了解决这个问题&#xff0c;可以利用IP地址查控技术&#xff0c;确保电子招投标的公平性和透明性。本文将介绍如何通过IP地址查…

XCode15与iOS17/17.1 真机测试问题处理

XCode15与iOS17/17.1 真机测试问题处理&#xff0c;网上相关博客很多&#xff0c;摘录了如下实践后能起作用的地址如下&#xff1a;Xcode 15 报错处理 - 简书iOS17版本适配-CSDN博客 Xcode15适配-六虎 主要介绍下&#xff1a;Assertion failure in void _UIGraphicsBeginImag…

【AI视野·今日Sound 声学论文速览 第二十六期】Mon, 16 Oct 2023

AI视野今日CS.Sound 声学论文速览 Mon, 16 Oct 2023 Totally 7 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Sound Papers Low-latency Speech Enhancement via Speech Token Generation Authors Huaying Xue, Xiulian Peng, Yan Lu现有的基于深度学习的语音增强…

VirtualBox安装时提示失败(未解决)

似乎是升级6.1.48的时候&#xff0c;提示签名有问题。重启后就这样了。 卸载1&#xff1a; 卸载2 修复式安装

【AI视野·今日Robot 机器人论文速览 第五十五期】Mon, 16 Oct 2023

AI视野今日CS.Robotics 机器人学论文速览 Mon, 16 Oct 2023 Totally 27 papers &#x1f449;上期速览✈更多精彩请移步主页 Interesting: &#x1f4da;***AcTExplore, 对于未知物体的主动触觉感知。基于强化学习自动探索物体的表面形貌&#xff0c;增量式重建。(from 马里兰…

Linear、Logistic回归

线性回归 线性回归的目标是找到最佳拟合线&#xff0c;以使观测数据点与该线的残差&#xff08;实际值与预测值之间的差异&#xff09;最小化。线性回归通常用于探索变量之间的趋势、预测未来数值&#xff0c;或者用于发现因果关系。 简单实例&#xff08;波士顿房价&#xff…

文创品经营商城小程序的作用是什么

如今私域流量运营成为各商家增加的新方式&#xff0c;而在转化链路中&#xff0c;私域商城是重要的节点。 通过【雨科】平台搭建文创品小程序商城全面展示产品&#xff0c;赋能客户随时购物需求&#xff0c;摆脱第三方限制&#xff0c;自营增强生意、拓展品牌&#xff0c;分类式…

中断:Zynq Uart中断的流程和例程~UG585的CH.19

Zynq里的uart UART 控制器是全双工异步接收器和发送器&#xff0c;支持多种可编程波特率和 I/O 信号格式。该控制器可以适应自动奇偶校验生成和多主机检测模式。 UART 操作由配置和模式寄存器控制。使用状态、中断状态和调制解调器状态寄存器读取 FIFO、调制解调器信号…

10.18作业

使用手动连接&#xff0c;将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否为"admin"&#xff0c;密码是否为…

在ts中val is Map是什么意思呢?

最近在学习vue3的源码&#xff0c;顺便也在学习ts&#xff0c;就记录一下自己学习中的困惑吧 export const isArray Array.isArray export const isMap (val: unknown): val is Map<any, any> >toTypeString(val) [object Map] export const isSet (val: unknow…

【极速发表】2-4区SCI (含CCF),平均录用周期仅2个月,最快11天见刊!

一、计算机科学类SCI (11.30截稿) 【期刊概况】IF:4.0-5.0, JCR2区&#xff0c;中科院3区&#xff1b; 【检索情况】SCI在检&#xff0c;正刊&#xff1b; 【国人占比】10.58%&#xff1b; 【自引率】7.50%&#xff1b; 【年发文量】100篇以下&#xff1b; 【预警情况】无…

微服务负载均衡实践

概述 本文介绍微服务的服务调用和负载均衡&#xff0c;使用spring cloud的loadbalancer及openfeign两种技术来实现。 本文的操作是在微服务的初步使用的基础上进行。 环境说明 jdk1.8 maven3.6.3 mysql8 spring cloud2021.0.8 spring boot2.7.12 idea2022 步骤 改造Eu…

华为Atlas 200I DK A2开发者套件--基础使用配置

文章目录 前言一、快速开始二、通过路由器联网三、USB相机总结 前言 Atlas 200I DK A2基础使用配置方法。准备好键鼠、显示器、网线、USB拓展器。 一、快速开始 下载最新官方Windows版本昇腾开发者套件一键制卡工具&#xff1a; https://ascend-repo.obs.cn-east-2.myhuaweic…

消除隐患 防患未然|AIRIOT智慧消防管理解决方案

随着科技的飞速发展和城市化进程的不断推进&#xff0c;消防安全问题逐渐凸显。传统消防手段在应对现代复杂多变的火灾事故时显得力不从心&#xff0c;面临着许多挑战和弊端&#xff1a; 监控能力不足&#xff1a;传统消防手段通常依赖于人力监控和报警系统&#xff0c;如消防员…

SpringBoot前后端分离jar包nginx配置https访问

背景&#xff1a;做微信支付回调需要用到https域名&#xff0c;服务器是linux系统&#xff0c;用nginx做反向代理 准备&#xff1a;阿里云、腾讯云或者自己生成的SSL证书&#xff0c;java是8086端口 一&#xff1a;安装nginx&#xff0c;以前博客有记录 二&#xff1a;安装SS…

MySQL学习路线

1 学习路线图 2 参考的文档&#xff1a; 民工哥技术之路菜鸟教程

ScaleButton缩放按钮的实现基于javascript,typescript的代码-复制即用

调用方法 newChestInstance(sp:cc.SpriteFrame,pos:cc.Vec3){var node = new cc.Node("New Sprite");var sprite = node.addComponent(cc.Sprite);node.parent = this.canvasRoot;sprite.spriteFrame = sp;sprite.node.position = pos;node.addComponent(ChestView);…

极客笔记-消息队列

rocketMq 如果nameserver都挂了&#xff0c;sdk缓存了topic信息&#xff0c;依旧可用&#xff0c;所有它是AP,即保证可用性跟分区容错性 Bzhan https://www.bilibili.com/video/BV1cf4y157sz?p30&spm_id_frompageDriver&vd_sourceb2ecb56ea9b8dabcf65d10396ff…

WPF实现签名拍照功能

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

低代码:时代的选择

低代码&#xff0c;作为一种快速开发应用的软件&#xff0c;将通用、可重复利用的代码形成组件化的模块&#xff0c;通过图形化的界面来拖拽组件并形成应用。低代码能够实现只写少量代码或不写代码&#xff0c;类似用“乐高积木”的方式来开发。 既减少了不必要的工作量&#x…