解决方案js:https://pan.baidu.com/s/1jIys2aU

我们使用canvas通常会遇到一个问题就是坐标系的问题,如果按象限来说,一般canvas是在第四象限,但是我们通常都喜欢在第一象限来计算,第二个问题是手机端用canvas绘图很粗糙,这个在上一章节也说过,今天就根绝这两个问题,写一个解决方案:

首先我们html里面的canvas要这么写:<canvas id="myCanvas" width="750" height="750" layoutwidth="750" ></canvas>其中layoutwidth是表示canvas设计稿的宽度(一般都是按照苹果6的设计稿,宽度是750),width和height属性表示在750的设计稿中canvas的实际宽高(建议阅读本章前,先了解手机下rem的使用,本解决方案参考了rem的解决方案),然后引入我写的js后,var myCanvas = new carvasCloth("myCanvas"),然后就可以绘图了,我是这样使用的 把我写的解决方案js作为一个基类,然后另写一个针对特定业务的js继承这个基类,然后再这个特定的js里面实现具体的绘图操作

this.gY 是一个方法,返回的是按照第一象限下y的坐标,比如说我想画一个点{x:10,y:10}你如果直接画,那是按照第四象限来画的,这样写:{x:10,y:this.gY(10)}就是按照第一象限来了

this.gYAdd 有时候我想计算两个已经计算的坐标的相加值,this.gYAdd(this.gY(10),this.gY(20))
this.gYsubtract 有时候我想计算两个已经计算的坐标的相减值,this.gYsubtract(this.gY(10),this.gY(20))
this.gX 返回是X的坐标
this.gW返回单位宽度内的实际宽度 this.gW(1)表示在画布内一单位宽度的实际宽度

canvas手机端绘图解决方案的更多相关文章

  1. megapix-image插件 使用Canvas压缩图片上传 解决手机端图片上传功能的问题

    最近在弄微信端的公众号.订阅号的相关功能,发现原本网页上用的uploadify图片上传功能到手机端有的手机类型上就不能用了,比如iphone,至于为啥我想应该不用多说了吧(uploadify使用fla ...

  2. 表单界面的兼容PC手机端解决方案

    就当写一篇随笔吧~上星期还在做加盟模块(兼容微信端),这星期已经加班做快递扫码模块(react+node),所以我感觉只有弹药备足了才能稍微轻松些应对各种需求.实话说在同个部门的大佬面前差距确实大,如 ...

  3. 手机端页面自适应解决方案—rem布局进阶版

    手机端页面自适应解决方案—rem布局进阶版   https://www.jianshu.com/p/985d26b40199 注:本文转载之处:https://www.cnblogs.com/anni ...

  4. 手机端页面自适应解决方案—rem布局(进阶版,附源码示例)

    转自:https://segmentfault.com/a/1190000007350680 一年前笔者写了一篇 <手机端页面自适应解决方案—rem布局>,意外受到很多朋友的关注和喜欢.但 ...

  5. rem手机端页面自适应完美解决方案(最新)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. 移动端(手机端)页面自适应解决方案—rem布局篇

    移动端(手机端)页面自适应解决方案-rem布局 假设设计妹妹给我们的设计稿尺寸为750 * 1340.结合网易.淘宝移动端首页html元素上的动态font-size属性.设计稿尺寸.前端与设计之间协作 ...

  7. 70.JS---利用原生js做手机端网页自适应解决方案rem布局

    利用原生js做手机端网页自适应解决方案rem布局 刚开始我用的是下面这段代码,然后js通过外部链接引入,最后每次用手机刷新网页的时候都会出现缩略图 function getRem(pwidth, pr ...

  8. html5 canvas手写字代码(兼容手机端)

    html5 canvas手写字代码(兼容手机端) <pre><!DOCTYPE html><html><head> <title>画板实验& ...

  9. canvas 实现简单的画板功能添加手机端效果 1.01

    在上次的基础上,加了一些代码,手机端可操作 访问网址:https://chandler712.github.io/Item/ <!-- 简单版画板 --> <!DOCTYPE htm ...

随机推荐

  1. linux远程方式,以及基础命令

    最近准备学习linux系统,购买了阿里巴巴的云服务器,系统为CentOS. 一.连接实例 1.使用管理终端. 这是阿里巴巴云服务器管理控制台,需要登录阿里巴巴,找到自己实例后,点击右侧远程连接即刻. ...

  2. XXXcannot be resolved to a type

    编写自动化测试用例一个新创建的用例中类继承了其他类,由于未知原因,eclipse没能自动编译源代码到build/classes(或其他classes目录)代码一直报错XXX cannot be res ...

  3. ODAC(V9.5.15) 学习笔记(十一)TOraEncryptor、TOraPackage和TOraAlerter

    TOraEncryptor 名称 类型 说明 DataHeader TCREncDataHeader 一些附加信息放入加密数据中,包括: ehNone 无附加信息 ehTag   GUID和随机生成的 ...

  4. SOAP和WebService的那些事

    当初对这段历史有过一点研究,不过当初写得关于这部分历史的论文不知道被我丢哪儿去了,下面我用通俗一点的语言来话说一下这段历史吧,因为当初详细到具体人物具体时间的已经记不清了,所以这里写得不够专业,大家就 ...

  5. Almost Union-Find (并查集+删除元素)题解

    思路: 当时只有暴力的思想,1.3都很好达到,只要加一个sum[ ]和num[ ]就可以,但是2比较麻烦,不知道谁以p为根,就想直接扫描然后一个个和p脱离关系,果然超时emmm.通常的想法是我们先用一 ...

  6. 【教程】Git在Eclipse中的安装和基本使用

    一.安装 点击 Help->Install New Software->add 安装地址为:http://download.eclipse.org/egit/updates/ 选择插件   ...

  7. R read.tabe line 5 did not have 2 elements

    R read.tabe  line 5 did not have 2 elements Reason: there are special characters such as # in file o ...

  8. (转)干货|这篇TensorFlow实例教程文章告诉你GANs为何引爆机器学习?(附源码)

    干货|这篇TensorFlow实例教程文章告诉你GANs为何引爆机器学习?(附源码) 该博客来源自:https://mp.weixin.qq.com/s?__biz=MzA4NzE1NzYyMw==& ...

  9. 剥开比原看代码16:比原是如何通过/list-transactions显示交易信息的

    作者:freewind 比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchai ...

  10. Entity Framework Core一键生成实体命令

    打开Vs中工具——Nug包管理器——程序包管理控制台 设置启动项目为存储实体模型的类库或控制台 Scaffold-DbContext  "数据库连接字符串" Microsoft.E ...