第47篇白板修复之铅笔选择三种粗细(一)

2023-11-21 18:50

本文主要是介绍第47篇白板修复之铅笔选择三种粗细(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关键词:铅笔选择三种粗细

一、铅笔选择三种粗细

1.问题描述

  现在铅笔只有一种默认粗细可选,也就是width=1;现在要加两种粗细,分别是width=4;width=7;

2. 思路分析

  这个相对来说有一定难度,可分为两个步骤:第一步是鼠标画时,展现出三种粗细;

                                          第二步是点阵笔画时,展现出三种粗细;

3. 开工

  现在做成了,添加三支笔,都能写的模式,如下:

相关代码如下:

   <section id="tool-box" class="tool-box"style="background:#e3e3e5;">

       <canvas id="image-icon" width="50"height="40" title="图片"></canvas >

        <canvas id="drag-last-path"width="50" height="40" title="移动"style="display:none;"></canvas>

       <canvas id="pencil-icon1"width="50" height="40" title="铅笔1"></canvas>

        <canvas id="pencil-icon2"width="50" height="40" title="铅笔2"></canvas>

        <canvas id="pencil-icon3"width="50" height="40" title="铅笔3"></canvas>

       <canvas id="colors" width="50"height="40" title="颜色"></canvas>

       <canvas id="colors" width="50"height="40" title="颜色"></canvas>

       <canvas id="eraser-icon" width="50"height="40" title="橡皮擦"style="display:none;"></canvas>

       <canvas id="line" width="50"height="40" title="直线"></canvas>

       <canvas id="arrow" width="50"height="40" title="箭头"></canvas>

       <canvas id="arc" width="50" height="40"title="圆形"></canvas>

       <canvas id="rectangle" width="50"height="40" title="矩形"></canvas>

       <!--

       <canvas id="br" width="60"height="60"></canvas>

       <!--以下暂不显示-->

       <canvas id="text-icon" width="60" height="45"title="文本"></canvas>

       <canvas id="marker-icon" width="60"height="45" title="记号笔"></canvas>

       <canvas id="drag-all-paths" width="60"height="45"></canvas>

       <canvas id="quadratic-curve" width="60"height="45" title="记号笔"></canvas>

       <canvas id="bezier-curve" width="60"height="45" title="记号笔"></canvas>

       <canvas id="clean" width="60"height="60" style="display:none;"></canvas>

 

       

</section>

加了三个decoratePencil

        function decoratePencil1() {//铅笔1           

                          var context =getContext("pencil-icon1"),

                          image = new Image;

            image.onload = function() {

                context.drawImage(image, 0, 0,40, 40),

                bindEvent(context,"Pencil")

               

            },

            image.src ="/static/img/pencil.png";

        }

        

        function decoratePencil2() {//铅笔2           

                          var context =getContext("pencil-icon2"),

                          image = new Image;

            image.onload = function() {

                context.drawImage(image, 0, 0,40, 40),

                bindEvent(context,"Pencil")

               

            },

            image.src ="/static/img/pencil.png";

        }

 

        function decoratePencil3() {//铅笔3           

                          var context =getContext("pencil-icon3"),

                          image = new Image;

            image.onload = function() {

                context.drawImage(image, 0, 0,40, 40),

                bindEvent(context,"Pencil")

               

            },

            image.src ="/static/img/pencil.png";

        }

另外加了三个调用decoratePencil的代码如下:

但控制粗细的代码还集中到一起,如下:

                  line: function(context, point,options) {

                                   if(options&& options[0] <=1 ){

                                   options[0] =1.3;

                          }

                          context.beginPath(),context.moveTo(point[0], point[1]), context.lineTo(point[2], point[3]),this.handleOptions(context, options|| this.getOptions({lineWidth:1.2}))

                  },

下一步就是将它们分开!

2016年12月30日星期五

这篇关于第47篇白板修复之铅笔选择三种粗细(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/404367

相关文章

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

修复已被利用的高危漏洞! macOS Sequoia 15.6.1发布

《修复已被利用的高危漏洞!macOSSequoia15.6.1发布》苹果公司于今日发布了macOSSequoia15.6.1更新,这是去年9月推出的macOSSequoia操作... MACOS Sequoia 15.6.1 正式发布!此次更新修复了一个已被黑客利用的严重安全漏洞,并解决了部分中文用户反馈的

详解Java中三种状态机实现方式来优雅消灭 if-else 嵌套

《详解Java中三种状态机实现方式来优雅消灭if-else嵌套》这篇文章主要为大家详细介绍了Java中三种状态机实现方式从而优雅消灭if-else嵌套,文中的示例代码讲解详细,感兴趣的小伙伴可以跟... 目录1. 前言2. 复现传统if-else实现的业务场景问题3. 用状态机模式改造3.1 定义状态接口3

redis中session会话共享的三种方案

《redis中session会话共享的三种方案》本文探讨了分布式系统中Session共享的三种解决方案,包括粘性会话、Session复制以及基于Redis的集中存储,具有一定的参考价值,感兴趣的可以了... 目录三种解决方案粘性会话(Sticky Sessions)Session复制Redis统一存储Spr

Python清空Word段落样式的三种方法

《Python清空Word段落样式的三种方法》:本文主要介绍如何用python-docx库清空Word段落样式,提供三种方法:设置为Normal样式、清除直接格式、创建新Normal样式,注意需重... 目录方法一:直接设置段落样式为"Normal"方法二:清除所有直接格式设置方法三:创建新的Normal样

把Python列表中的元素移动到开头的三种方法

《把Python列表中的元素移动到开头的三种方法》在Python编程中,我们经常需要对列表(list)进行操作,有时,我们希望将列表中的某个元素移动到最前面,使其成为第一项,本文给大家介绍了把Pyth... 目录一、查找删除插入法1. 找到元素的索引2. 移除元素3. 插入到列表开头二、使用列表切片(Lis

电脑提示d3dx11_43.dll缺失怎么办? DLL文件丢失的多种修复教程

《电脑提示d3dx11_43.dll缺失怎么办?DLL文件丢失的多种修复教程》在使用电脑玩游戏或运行某些图形处理软件时,有时会遇到系统提示“d3dx11_43.dll缺失”的错误,下面我们就来分享超... 在计算机使用过程中,我们可能会遇到一些错误提示,其中之一就是缺失某个dll文件。其中,d3dx11_4

游戏闪退弹窗提示找不到storm.dll文件怎么办? Stormdll文件损坏修复技巧

《游戏闪退弹窗提示找不到storm.dll文件怎么办?Stormdll文件损坏修复技巧》DLL文件丢失或损坏会导致软件无法正常运行,例如我们在电脑上运行软件或游戏时会得到以下提示:storm.dll... 很多玩家在打开游戏时,突然弹出“找不到storm.dll文件”的提示框,随后游戏直接闪退,这通常是由于

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

Java继承映射的三种使用方法示例

《Java继承映射的三种使用方法示例》继承在Java中扮演着重要的角色,它允许我们创建一个类(子类),该类继承另一个类(父类)的所有属性和方法,:本文主要介绍Java继承映射的三种使用方法示例,需... 目录前言一、单表继承(Single Table Inheritance)1-1、原理1-2、使用方法1-