canvas手机端绘图解决方案

时间:2023-02-02 15:24:17

解决方案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)表示在画布内一单位宽度的实际宽度