第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

相关文章

Go语言中三种容器类型的数据结构详解

《Go语言中三种容器类型的数据结构详解》在Go语言中,有三种主要的容器类型用于存储和操作集合数据:本文主要介绍三者的使用与区别,感兴趣的小伙伴可以跟随小编一起学习一下... 目录基本概念1. 数组(Array)2. 切片(Slice)3. 映射(Map)对比总结注意事项基本概念在 Go 语言中,有三种主要

Spring IOC的三种实现方式详解

《SpringIOC的三种实现方式详解》:本文主要介绍SpringIOC的三种实现方式,在Spring框架中,IOC通过依赖注入来实现,而依赖注入主要有三种实现方式,构造器注入、Setter注入... 目录1. 构造器注入(Cons编程tructor Injection)2. Setter注入(Setter

linux报错INFO:task xxxxxx:634 blocked for more than 120 seconds.三种解决方式

《linux报错INFO:taskxxxxxx:634blockedformorethan120seconds.三种解决方式》文章描述了一个Linux最小系统运行时出现的“hung_ta... 目录1.问题描述2.解决办法2.1 缩小文件系统缓存大小2.2 修改系统IO调度策略2.3 取消120秒时间限制3

Linux alias的三种使用场景方式

《Linuxalias的三种使用场景方式》文章介绍了Linux中`alias`命令的三种使用场景:临时别名、用户级别别名和系统级别别名,临时别名仅在当前终端有效,用户级别别名在当前用户下所有终端有效... 目录linux alias三种使用场景一次性适用于当前用户全局生效,所有用户都可调用删除总结Linux

Python 中 requests 与 aiohttp 在实际项目中的选择策略详解

《Python中requests与aiohttp在实际项目中的选择策略详解》本文主要介绍了Python爬虫开发中常用的两个库requests和aiohttp的使用方法及其区别,通过实际项目案... 目录一、requests 库二、aiohttp 库三、requests 和 aiohttp 的比较四、requ

VUE动态绑定class类的三种常用方式及适用场景详解

《VUE动态绑定class类的三种常用方式及适用场景详解》文章介绍了在实际开发中动态绑定class的三种常见情况及其解决方案,包括根据不同的返回值渲染不同的class样式、给模块添加基础样式以及根据设... 目录前言1.动态选择class样式(对象添加:情景一)2.动态添加一个class样式(字符串添加:情

python修改字符串值的三种方法

《python修改字符串值的三种方法》本文主要介绍了python修改字符串值的三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录第一种方法:第二种方法:第三种方法:在python中,字符串对象是不可变类型,所以我们没办法直接

MySQL中删除重复数据SQL的三种写法

《MySQL中删除重复数据SQL的三种写法》:本文主要介绍MySQL中删除重复数据SQL的三种写法,文中通过代码示例讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下... 目录方法一:使用 left join + 子查询删除重复数据(推荐)方法二:创建临时表(需分多步执行,逻辑清晰,但会

el-select下拉选择缓存的实现

《el-select下拉选择缓存的实现》本文主要介绍了在使用el-select实现下拉选择缓存时遇到的问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录项目场景:问题描述解决方案:项目场景:从左侧列表中选取字段填入右侧下拉多选框,用户可以对右侧

在Spring中配置Quartz的三种方式

《在Spring中配置Quartz的三种方式》SpringQuartz是一个任务调度框架,它允许我们定期执行特定的任务,在Spring中,我们可以通过多种方式来配置Quartz,包括使用​​@Sche... 目录介绍使用 ​​@Scheduled​​ 注解XML 配置Java 配置1. 创建Quartz配置