前端基础_使用moveTo与lineTo路径绘制火柴人

2023-11-01

使用moveTo与lineTo路径绘制火柴人

接下来看一下除了arc方法以外,其他使用路径绘制图形时会使用到的方法。
 moveTo(x,y):不绘制,只是将当前位置移动到新的目标坐标(x,y)。
 lineTo(x,y):不仅将当前位置移动到新的目标坐标(x,y),而且在两个坐标之间画一条直线。
简而言之,上面两个函数的区别在于:moveTo就像是提起画笔,移动到新位置,而lineTo告诉canvas用画笔从纸上的旧坐标画条直线到新坐标。需要注意的是,不管调用它们哪一个,都不会真正画出图形,因为还没有调用stroke或者fill函数。目前,我们只是在定义路径的位置,以便后面绘制时使用。

下面再来看一个特殊的路径函数叫作closePath。这个函数的行为和lineTo很像,唯一的差别在于closePath会将路径的起始坐标自动作为目标坐标。closePath还会通知canvas当前绘制的图形已经闭合或者形成了完全封闭的区域,这对将来的填充和描边都非常有用。
此时,可以在已有的路径中继续创建其他的子路径,或者随时调用beginPath重新绘制新路径并完全清除之前的所有路径。

【例17.4】下面将应用canvas的arc、moveTo、lineTo方法来绘制一个火柴人。
具体步骤如下。

(1)通过document.getElementById方法取得canvas元素,然后使用canvas对象的getContext方法来获得图形上下文,与此同时传入使用的“2d”的canvas类型,代码如下。
var canvas = document.getElementById(id);
    var context = canvas.getCo

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

前端基础_使用moveTo与lineTo路径绘制火柴人 的相关文章

  • 迁移到 java 17 后有关“每个进程的内存映射”和 JVM 崩溃的 GC 警告

    我们正在将 java 8 应用程序迁移到 java 17 并将 GC 从G1GC to ZGC 我们的应用程序作为容器运行 这两个基础映像之间的唯一区别是 java 的版本 例如对于 java 17 版本 FROM ubuntu 20 04
  • 序列化对象以进行单元测试

    假设在单元测试中我需要一个对象 其中所有 50 个字段都设置了一些值 我不想手动设置所有这些字段 因为这需要时间而且很烦人 不知何故 我需要获得一个实例 其中所有字段都由一些非空值初始化 我有一个想法 如果我要调试一些代码 在某个时候我会得
  • 如何将文件透明地传输到浏览器?

    受控环境 IE8 IIS 7 ColdFusion 当从 IE 发出指向媒体文件 例如 mp3 mpeg 等 的 GET 请求时 浏览器将启动关联的应用程序 Window Media Player 我猜测 IIS 提供文件的方式允许应用程序
  • Spring Data 与 Spring Data JPA 与 JdbcTemplate

    我有信心Spring Data and Spring Data JPA指的是相同的 但后来我在 youtube 上观看了一个关于他正在使用JdbcTemplate在那篇教程中 所以我在那里感到困惑 我想澄清一下两者之间有什么区别Spring
  • 反思 Groovy 脚本中声明的函数

    有没有一种方法可以获取 Groovy 脚本中声明的函数的反射数据 该脚本已通过GroovyShell目的 具体来说 我想枚举脚本中的函数并访问附加到它们的注释 Put this到 Groovy 脚本的最后一行 它将作为脚本的返回值 a la
  • Rails:找不到 JavaScript 运行时。有关可用运行时的列表,请参阅 https://github.com/sstephenson/execjs。 (ExecJS::运行时不可用)

    自从几周前 Dreamhost 升级了服务器以来 我的网站就被破坏了 我一直在努力解决它并取得了一些进展 但我仍然坚持希望是最后的问题 我在 Ruby 1 8 7 上使用 Rails 3 1 1 并收到来自 PhusionPassenger
  • JavaScript Promise 不执行 .then()

    我在 JavaScript 中的 Promise 方面遇到了一些问题 我想做的是获得一个地址列表 然后对于每个地址 我需要调用地理编码 API 来获取 lat lng 然后我将继续将标记与热图一起绘制 这是我的代码 let promiseK
  • 将 Long 转换为 DateTime 从 C# 日期到 Java 日期

    我一直尝试用Java读取二进制文件 而二进制文件是用C 编写的 其中一些数据包含日期时间数据 当 DateTime 数据写入文件 以二进制形式 时 它使用DateTime ToBinary on C 为了读取 DateTime 数据 它将首
  • Tomcat 6找不到mysql驱动

    这里有一个类似的问题 但关于类路径 ClassNotFoundException com mysql jdbc Driver https stackoverflow com questions 1585811 classnotfoundex
  • 根据特定字符获取整个字符串或子字符串

    我有一个包含 MIME 类型的字符串 例如application json 现在我想将其与实际的 HTTP 标头进行比较 在本例中content type 如果标头包含 MIME 类型 那么就很简单 if mimeType contentT
  • JavaScript 提升解释

    下面的片段有什么区别 var a 0 function b a 10 return function a b console log a gt 10 and var a 0 function b a 10 return function a
  • Android JNI C 简单追加函数

    我想制作一个简单的函数 返回两个字符串的值 基本上 java public native String getAppendedString String name c jstring Java com example hellojni He
  • Outlook 加载项,无法读取未定义的属性“BeginRequestEventArgs”

    我使用 Visual Studio 开发了 Outlook 插件 我的插件有一个按钮 用于填充会议邀请正文中的详细信息并添加所需的与会者 这在 99 的情况下都有效 但是 时不时地它会给我下面的 JavaScript 错误 Uncaught
  • 如何配置eclipse以保持这种代码格式?

    以下代码来自 playframework 2 0 的示例 Display the dashboard public static Result index return ok dashboard render Project findInv
  • 不使用控件时,视频元素在 Chrome 中消失

    So I think这是一个浏览器错误 它出现在一个更复杂的设计 网站中 但我已经进行了很好的尝试 简化了我的代码和设计等 并发现了以下内容 嵌入时
  • 将 JTextArea 内容写入文件

    我在 Java Swing 中有一个 JTextArea 和一个 提交 按钮 需要将textarea的内容写入一个带有换行符的文件中 我得到的输出是这样的 它被写为文件中的一个字符串 try BufferedWriter fileOut n
  • 将2-3-4树转换为红黑树

    我正在尝试将 2 3 4 树转换为 java 中的红黑树 但我无法弄清楚它 我将这两个基本类编写如下 以使问题简单明了 但不知道从这里到哪里去 public class TwoThreeFour
  • 在方法内部执行方法

    我目前正在 FreeCodeCamp 中进行 JavaScript 练习 我的代码应该使用的测试用例之一是函数调用 如下所示 addTogether 2 3 这是我得到的基本功能 function addTogether return 当我
  • ReactJs 警告:不推荐使用改变“style”。考虑事先克隆它

    我收到以下警告 inWarning div was passed a style object that has previously been mutated Mutating style is deprecated Consider c
  • JQuery 删除和内存泄漏

    我正在开发一个游戏 我看到了很多内存消耗 我使用jquery animate 动画完成后 我 remove 元素 我的问题是 从 dom 树中删除一个元素后 对象还存在记忆中吗 Javascript 是一种垃圾收集语言 这意味着当没有代码保

随机推荐

  • 备赛电赛学习硬件篇(二):电源板电路设计

    目录 一 接口 二 稳压部分 三 防反接电路 四 电流与线宽 一 接口 1 输入接口 要准
  • 调试osgEarth(33)分页瓦片卸载器子节点的作用-(3)渲染遍历的帧号和时间设置-TerrainCuller赋值给可渲染图层--TerrainRenderData-Layer

    继续调试 再回顾下Layer类的成员变量 就是说 初始化时调用init 添加到Map上时 setReadOptions gt open gt addedToMap 移除时用removedFromMap 总结下 Layer是个基类 有自己的唯
  • MATLAB实现doc文件的批量改名

    对于一个文件夹中的多个doc文件进行批量改名 下图中是笔者从学生那里收上来的记录表 说了要统一命名也没人听 我又懒得一个个改 只好费点时间编程了 两种实现的思路 一是从旧文件名中选取特定位置的字符 组成新的文件名 要求文件名有固定的位置 比
  • Swift之 ? 和 !

    04 June 2014 Swift语言使用var定义变量 但和别的语言不同 Swift里不会自动给变量赋初始值 也就是说变量不会有默认值 所以要求使用变量之前必须要对其初始化 如果在使用变量之前不进行初始化就会报错 var stringV
  • 产品设计七大定律

    Alan Cooper 交互设计之父 除非有更好的选择 否则就遵从标准 许多设计准则都基于人类心理学 人们如何感知 学习 推理 记忆 以及把意图转换为行动 菲茨定律 菲茨定律用来预测某点到目标位置所需要时间的数学模型 在页面中 大而近的目标
  • 共模电感

    一 背景 关电源会产生以下两类噪声 共模和差模 差模噪声 图a 的传播途径和输入电流相同 共模噪声 图b 表现为彼此相等且同相的噪声 其传播途径经绕组与地线相连 本文主要讲解抑制共模的共模电感的磁芯选择 二 共模电感的抑制原理 电感器对高频
  • Qt5 Qstring::asprintf(“%.3f“, a)精度问题,有时四舍五入,有时直接丢弃。

    问题描述 提示 这里描述具体问题 在Qt5 12开发软件时发现 用Qstring asprintf 3f a 这个函数做精度控制 有时直接四舍五入 有时直接将精度后面的数据拿掉 例如 Qstring asprintf 3f a 四舍五入 f
  • 机器学习算法 决策树

    文章目录 一 决策树的原理 二 决策树的构建 2 1 ID3算法构建决策树 2 2 C4 5 算法树的构建 2 3 CART 树的创建 三 决策树的优缺点 一 决策树的原理 决策树 Decision Tree 是一种非参数的有监督学习方法
  • 10.12黄金原油资讯直通车,黄金原油区间震荡后市操作建议

    黄金消息面与技术面解析 消息面 本周显然又是一个 超级周 数据方面 将迎来中国CPI PPI数据和进出口数据 美国将公布CPI PPI 零售销售等重磅经济数据 风险事件方面 OPEC EIA和IEA都将公布原油市场月度报告 美联储多位票委和
  • eslint+prettier+vue3格式化

    项目里面安装并配置eslint 参考官网执行如下命令 npm init eslint config 等价于 npm install eslint D 安装eslint npx eslint init 初始化配置eslint 执行后会有一些配
  • 【论文笔记】:UnitBox

    Title 2016 ACM MM UnitBox An Advanced Object Detection Network Abstract 传统的目标框含有四个独立的坐标变量 丢失了相互之间的信息 导致AP下降 Unit Box 提出了
  • java操作RabbitMQ

    1 创建虚拟主机 交换机 队列 RabbitMQ提供了自己的管理界面 可以通过管理界面来完成VirtualHost Exchange queue的创建 1 1创建VirtualHost 1 2创建交换机 创建交换机的时候需要指定虚拟主机以及
  • 切换默认python版本(解决ROS中python默认版本为python2的问题)

    1 前言 许多小伙伴在安装完ROS以后 需要基于python3写ROS程序 尤其是部署深度学习算法 但是ROS默认的python版本为python2 导致无法兼容一些基于python3写的算法 有的小伙伴会选择利用anaconda来创建py
  • 蓝桥杯单片机之AT24C02模块的使用

    蓝桥杯单片机之AT24C02时钟模块的使用 简介部分 EEPROM AT24C02 引脚示意 设备地址 Device Address 基本操作 字节写入 分析手册 字节读取 随机读取 根据需要读取的地址进行读取 分析手册 读与写函数代码 实
  • 计算并输出给定正整数n的所有因子(不包括1和自身)之和

    国二有题目 请编写函数fun 该函数的功能是 计算并输出给定正整数n的所有因子 不包括1和自身 之和 规定n的值不大于1000 例如 在主函数中从键盘给n输入的值为856 则输出为 sum 763 代码如何完成呢 分析 1 输入的数字要是整
  • 内网渗透—红日靶场三

    文章目录 0x01 环境配置 0x02 Centos getshell 0x03 Centos提权 0x04 内网穿透 设置路由 0x05 内网穿透 设置代理 0x06 获取内网目标shell 通过smb拿shell 或者本地挂代理使用k8
  • Windows环境下编译C++版的MXNet问题处理

    最近涉及要在c 上部署人脸检测的算法 要在Windows环境下编译运行MXNet 对于不熟悉c 的小白的我真是一件又让人抓狂又掉头发的事情 网上关于c 的部署的帖子少之又少 加上又是第一次摸这些东西 所以出现的bug真的数不胜数 写这个bl
  • 数据结构与算法之二叉树: Leetcode 145. 二叉树的后序遍历 (Typescript版)

    二叉树的后序遍历 https leetcode cn problems binary tree postorder traversal 描述 给你一棵二叉树的根节点 root 返回其节点值的 后序遍历 示例 1 输入 root 1 null
  • 适合普通大学生的前端开发学习路线

    大家好 我是帅地 假如你没有明确的目标 或许可以按照我说的学习路线来学习一波 我写的每一份学习路线 不会很全面 因为我认为 东西列的太多 反而不利于新手的学习 所以我列举的 都是比较必要的知识 当你把这些知识学了的时候 我相信你不需要别人的
  • 前端基础_使用moveTo与lineTo路径绘制火柴人

    使用moveTo与lineTo路径绘制火柴人 接下来看一下除了arc方法以外 其他使用路径绘制图形时会使用到的方法 moveTo x y 不绘制 只是将当前位置移动到新的目标坐标 x y lineTo x y 不仅将当前位置移动到新的目标坐