CN111078035B - 一种基于HTML5 Canvas的绘图方法 - Google Patents

一种基于HTML5 Canvas的绘图方法 Download PDF

Info

Publication number
CN111078035B
CN111078035B CN201911197085.6A CN201911197085A CN111078035B CN 111078035 B CN111078035 B CN 111078035B CN 201911197085 A CN201911197085 A CN 201911197085A CN 111078035 B CN111078035 B CN 111078035B
Authority
CN
China
Prior art keywords
canvas
layer
event
operation layer
mouse
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911197085.6A
Other languages
English (en)
Other versions
CN111078035A (zh
Inventor
卜一超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bank of Communications Co Ltd
Original Assignee
Bank of Communications Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bank of Communications Co Ltd filed Critical Bank of Communications Co Ltd
Priority to CN201911197085.6A priority Critical patent/CN111078035B/zh
Publication of CN111078035A publication Critical patent/CN111078035A/zh
Application granted granted Critical
Publication of CN111078035B publication Critical patent/CN111078035B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0354Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • G06F3/03543Mice or pucks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0354Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • G06F3/03547Touch pads, in which fingers can move on a surface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明涉及一种基于HTML5Canvas的绘图方法,包括以下步骤:S1、创建原始大小的底层<canvas>和尺寸小于底层<canvas>的操作层<canvas>;S2、根据预设的偏移数据,将操作层<canvas>覆盖于底层<canvas>之上;S3、在操作层<canvas>上进行图像绘制,记录图像绘制轨迹;S4、根据图像绘制轨迹,重新在底层<canvas>上进行图像绘制,以完成绘图。与现有技术相比,本发明基于动态分辨率原理,通过构建双层<canvas>,在上层较小的<canvas>上监听鼠标或触摸事件以保证绘图流畅性;并将上层的绘图轨迹在下层<canvas>上重现,以保证图像的清晰度。

Description

一种基于HTML5 Canvas的绘图方法
技术领域
本发明涉及移动设备绘图技术领域,尤其是涉及一种基于HTML5 Canvas的绘图方法。
背景技术
HTML5提供了<canvas>标签,以通过脚本(通常是JavaScript)来绘制图形。它不仅可以用于绘制图表、制作图片,甚至可以制作动画和游戏,目前大部分的浏览器(如桌面和移动版的Chrome、Firefox、Safari等)几乎都对<canvas>有比较好的支持,这使得众多企业和开发者能以较低的成本实现跨平台的、以图形展示和动画为主的前端应用程序。
以手写签名的功能模块为例,该功能模块用途广泛,可以运用在各种场景,比如在理财产品的签约界面上请用户签名确认签约,但是企业或开发者需要保证该功能模块能够兼容iOS、Android、甚至Windows等各类操作系统。
传统经常使用的技术手段是基于<canvas>开发Web APP,同时采用HTML5+WKWebView/UIWebView/WebView/CEF的组合技术方案,以开发跨平台APP。利用<canvas>实现绘图功能的解决方案大多是利用在<canvas>上检测鼠标点击、松开事件或手指的触摸、离开事件,从而控制在<canvas>上调用<canvas>的绘图API绘制线条。具体的步骤一般包括:
一、在鼠标点击、手指触摸时,调用<canvas>的移动绘制起点API(ApplicationProgramming Interface,应用程序接口);
二、在鼠标没有松开或手指没有离开屏幕时,监听鼠标、手指移动事件,每次事件被触发时,调用绘制直线API并重新调用移动绘制起点API,形成绘制连续线条的目的;
三、在鼠标松开或手指离开屏幕时,取消对监听鼠标、手指移动事件的触发处理,结束绘制。
上述方法在Chrome、Firefox、iOS设备上能够实现较好的绘图功能,能够保证一笔一画均贴合手指和鼠标的移动轨迹。但是,在Android设备上测试时,就可能出现滑动不跟手、线条不平滑等问题。除了设备、操作系统和浏览器的性能差异之外,产生这一问题的主要原因是由于HTML5的<canvas>绘制表现与<canvas>本身大小有关,在目前移动设备普遍拥有高DPI(Dots Per Inch,每英寸点数)、高分辨率的情况下,铺满全屏的<canvas>通常会占据三、四百万个像素,在这样大小的<canvas>上进行绘图必然会导致响应性能的滞后。
为此,现有技术考虑改变<canvas>绘制区域的大小以提升响应性能,<canvas>绘制区域的大小是通过<canvas>本身带有的属性width(宽度)和height(高度)来决定,但是其本身呈现的大小可以通过CSS(Cascading Style Sheets,层叠样式表)的width和height来指定。开发者可以定义一个CANVAS_SCALE属性,通过将CSS中width和height乘以CANVAS_SCALE,从而设置<canvas>中width和height属性值。例如:将CANVAS_SCALE设置为0.5,那么在<canvas>的CSS属性中设置width和height分别为3000和2000时,<canvas>实际绘制区域大小将改变为1500*1000。
设置CANVAS_SCALE有非常明显的好处:一是开发者可以根据设备类型和性能动态调整这个值(比如,在PC使用时可以将其设置为1,而在Android移动端使用时设置为0.5);
二是可以直接使用原先用于计算鼠标、手指位置在<canvas>中对应坐标的代码,仅需要在计算中合适的位置引入对CANVAS_SCALE的乘法逻辑即可;
三是对于笔触的粗细也能很容易进行调整,只需将原先的lineWidth乘以CANVAS_SCALE的平方即可。
尽管该技术方案能明显提高手绘响应性能,却会使得<canvas>中呈现的绘制线条变得模糊不清晰,其原因在于<canvas>实际包含的像素数量被减小到了原来的1/4,也就无法保证绘制图像的清晰度。
于是,现有技术还提出了另外一种尽可能减小<canvas>的大小的方法,具体是将一个<canvas>切割为多个子<canvas>的组合,以此既能保证<canvas>上的图形仍是原先的清晰度,又能减小<canvas>大小以提升响应性能。然而,该技术方案带来的问题是使得计算鼠标或touch位置在canvas的映射坐标变得相对复杂,并且最终的输出图形需要通过计算和拼接才能最终成型,这无疑增加了程序引入bug的风险。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于HTML5Canvas的绘图方法,根据动态分辨率的原理,在提升绘图时的响应性能的同时保证绘图时图像的清晰度。
本发明的目的可以通过以下技术方案来实现:一种基于HTML5 Canvas的绘图方法,包括以下步骤:
S1、创建底层<canvas>和操作层<canvas>,其中,操作层<canvas>的尺寸小于底层<canvas>的尺寸;
S2、根据预设的偏移数据,将操作层<canvas>覆盖于底层<canvas>之上;
S3、在操作层<canvas>上进行图像绘制,记录图像绘制轨迹;
S4、根据图像绘制轨迹,重新在底层<canvas>上进行图像绘制,以完成绘图。
进一步地,所述步骤S1中底层<canvas>的尺寸为原始尺寸大小,所述操作层<canvas>的尺寸是将底层<canvas>的尺寸按照预先设置的比例进行缩小后的尺寸大小。
进一步地,所述步骤S1中操作层<canvas>的尺寸具体为:
其中,WO表示操作层<canvas>的宽度,HO表示操作层<canvas>的高度,canvasWidth为底层<canvas>的宽度,canvasHeight为底层<canvas>的高度,CANVAS_SCALE表示预先设置的比例。
进一步地,所述步骤S2中预设的偏移数据包括操作层<canvas>高度方向与底层<canvas>高度方向之间的距离,以及操作层<canvas>宽度方向与底层<canvas>宽度方向之间的距离。
进一步的,所述步骤S3中图像绘制轨迹包括操作层<canvas>上鼠标或触摸的位置数据。
进一步地,所述步骤S3具体包括以下步骤:
S31、在操作层<canvas>上绑定mousedown或touchstart事件,当mousedown或touchstart事件被触发后,开始记录正在绘制的标志位,并计算鼠标或触摸对应在操作层<canvas>上的位置,其中,mousedown事件对应为“鼠标按下”,touchstart事件对应为“触摸按下”;
S32、调用context的API——beginPath和moveTo,以在操作层<canvas>上开始绘制;
S33、对操作层<canvas>上的mousemove或touchmove事件进行检测,若在操作层<canvas>上检测到mousemove或touchmove事件,则根据当前绘制的标志位判断是否正在执行绘制操作,若判断为正在执行绘制操作,则记录mousemove或touchmove事件触发时的鼠标或触摸位置,其中,mousemove事件对应为“鼠标移动”,touchmove事件对应为“触摸移动”;
S34、根据mousemove或touchmove事件触发时的鼠标或触摸位置,计算得到操作层<canvas>上需要进行绘制的坐标位置;
S35、基于操作层<canvas>上需要进行绘制的坐标位置,调用context的API——lineTo和stroke,以在操作层<canvas>上绘制线条;
S36、对操作层<canvas>上的mouseup或touchend事件进行检测,若在操作层<canvas>上检测到mouseup或touchend事件,则记录mouseup或touchend事件触发时的鼠标或触摸位置,其中,mouseup事件对应为“鼠标按键松开”,touchend事件对应为“触摸离开”;
S37、将步骤S31、S33和S36中记录的鼠标或触摸位置数据整理为操作层<canvas>上的图像绘制轨迹。
进一步地,所述步骤S34中操作层<canvas>上需要进行绘制的坐标位置具体为:
其中,xO表示操作层<canvas>上需要进行绘制的位置的横坐标,yO表示操作层<canvas>上需要进行绘制的位置的纵坐标,touchX表示mousemove或touchmove事件触发时的鼠标或触摸位置的横坐标,touchY表示mousemove或touchmove事件触发时的鼠标或触摸位置的纵坐标,left表示操作层<canvas>高度方向与底层<canvas>高度方向之间的距离,top表示操作层<canvas>高度方向与底层<canvas>高度方向之间的距离。
进一步地,所述步骤S4具体包括以下步骤:
S41、根据操作层<canvas>上记录的mouseup或touchend事件触发时的鼠标或触摸位置,计算底层<canvas>的绘制坐标位置;
S42、基于底层<canvas>的绘制坐标位置以及操作层<canvas>上的图像绘制轨迹,在底层<canvas>上完成图像绘制;
S43、清除操作层<canvas>上记录的所有数据。
进一步地,所述步骤S41中底层<canvas>的绘制坐标位置具体为:
其中,xB表示底层<canvas>的绘制坐标位置的横坐标,yB表示底层<canvas>的绘制坐标位置的纵坐标,touchX'表示操作层<canvas>上mouseup或touchend事件触发时的鼠标或触摸位置的横坐标,touchY'表示操作层<canvas>上mouseup或touchend事件触发时的鼠标或触摸位置的纵坐标。
与现有技术相比,本发明基于动态分辨率的原理,采用上下两层<canvas>的方式,其中,底层<canvas>保持原始大小,上层的操作层<canvas>按照比例缩小,并在操作层<canvas>上监听鼠标或触摸事件以保证绘图流畅性,同时记录图像绘制轨迹,在操作层<canvas>绘制结束后,将图像绘图轨迹在底层<canvas>上进行重现,如此既提升了绘制过程的响应性能、保证了绘制过程的流畅性,同时使得最终绘制的图像具有足够的清晰度。
附图说明
图1为本发明的方法流程图;
图2为实施例中应用效果示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
如图1所示,一种基于HTML5 Canvas的绘图方法,包括以下步骤:
S1、创建底层<canvas>和操作层<canvas>,其中,操作层<canvas>的尺寸小于底层<canvas>的尺寸;
S2、根据预设的偏移数据,将操作层<canvas>覆盖于底层<canvas>之上;
S3、在操作层<canvas>上进行图像绘制,记录图像绘制轨迹;
S4、根据图像绘制轨迹,重新在底层<canvas>上进行图像绘制,以完成绘图。
本发明利用动态分辨率的原理,通过适当降低分辨率,以调高绘图响应性能,同时构建双层<canvas>:底层<canvas>及其上层的操作层<canvas>,保证绘制图像的清晰度。
在实际应用中,<canvas>绘制区域的大小是通过<canvas>本身带有的属性width(宽度)和height(高度)来决定,而其本身呈现的大小可以通过CSS(即层叠样式表)中的width(宽度)和height(高度)来指定。预先定义一个名为CANVAS_SCALE属性,表示通过底层<canvas>的缩放比例,将底层<canvas>CSS中width和height乘以CANVAS_SCALE,即可设置操作层<canvas>中width和height属性值。如:将CANVAS_SCALE设置为0.5,那么当原始的底层<canvas>的CSS属性中设置width和height分别为3000和2000时,终端的操作层<canvas>实际绘制区域大小就为1500*1000。
如图2所示的应用效果示意图,本实施例先创建一个原始大小的底层<canvas>,然后在其上覆盖一个宽度和高度分别为Wo=canvasWidth*CANVAS_SCALE和Ho=canvasHeight*CANVAS_SCALE、但其CSS属性中的width和height仍与底层<canvas>相同的操作层<canvas>,由此得到两个在外观上大小相同、互相重叠,但上层实际大小要小于下层的操作层<canvas>。
在完成两层<canvas>的创建后,需要在上层的操作层<canvas>上实现绘图,具体原理与实现步骤如下:
1、在操作层<canvas>上绑定mousedown(鼠标按下)或touchstart(触摸按下)事件,当mousedown或touchstart事件被触发后,记录正在绘制的标志位,并计算鼠标或触摸位置对应在<canvas>上的位置,之后调用context的API——beginPath、moveTo,准备开始绘制;
2、在操作层<canvas>上检测到mousemove(鼠标移动)或touchmove(触摸移动)事件后,根据当前绘制的标志位判断是否正在执行绘制操作,如果正在绘制,则记录下事件触发时的鼠标、触摸位置,使用以下计算式计算在<canvas>上需要绘制的坐标位置:
式中,xO表示操作层<canvas>上需要进行绘制的位置的横坐标,yO表示操作层<canvas>上需要进行绘制的位置的纵坐标,touchX表示mousemove或touchmove事件触发时的鼠标或触摸位置的横坐标,touchY表示mousemove或touchmove事件触发时的鼠标或触摸位置的纵坐标,left表示操作层<canvas>高度方向与底层<canvas>高度方向之间的距离,top表示操作层<canvas>高度方向与底层<canvas>高度方向之间的距离;
计算位置完成后,调用context的API——lineTo、stroke绘制直线;
3、在操作层<canvas>上检测到mouseup(鼠标按键松开)或touchend(触摸离开屏幕)事件后,根据记录下的触发事件时鼠标、触摸触摸位置,在底层<canvas>上绘制图形,底层<canvas>计算绘制坐标位置的计算式如下:
其中,xB表示底层<canvas>的绘制坐标位置的横坐标,yB表示底层<canvas>的绘制坐标位置的纵坐标,touchX'表示操作层<canvas>上mouseup或touchend事件触发时的鼠标或触摸位置的横坐标,touchY'表示操作层<canvas>上mouseup或touchend事件触发时的鼠标或触摸位置的纵坐标;
4、在底层<canvas>的图像绘制完成后,清除正在绘制的标志位、mousemove(鼠标移动)或touchmove(触摸移动)事件的触发位置记录、以及操作层<canvas>的所有记录数据。
通过上述技术方案,虽然在操作层<canvas>上鼠标、触摸绘图过程中画出的线会模糊,但能保持绘制过程流畅、跟手;而松开鼠标或手指后,在底层<canvas>上重新绘制出的图形是与屏幕像素点1:1对应的清晰图像,如此既保证了绘制过程的流畅,又保证最终形成的图形的清晰度。

Claims (4)

1.一种基于HTML5 Canvas的绘图方法,其特征在于,包括以下步骤:
S1、创建底层<canvas>和操作层<canvas>,其中,操作层<canvas>的尺寸小于底层<canvas>的尺寸;
S2、根据预设的偏移数据,将操作层<canvas>覆盖于底层<canvas>之上;
S3、在操作层<canvas>上进行图像绘制,记录图像绘制轨迹;
S4、根据图像绘制轨迹,重新在底层<canvas>上进行图像绘制,以完成绘图;
所述步骤S1中底层<canvas>的尺寸为原始尺寸,所述操作层<canvas>的尺寸是将底层<canvas>的尺寸按照预先设置的比例进行缩小后的尺寸,所述步骤S1中操作层<canvas>的尺寸具体为:
其中,WO表示操作层<canvas>的宽度,HO表示操作层<canvas>的高度,canvasWidth为底层<canvas>的宽度,canvasHeight为底层<canvas>的高度,CANVAS_SCALE表示预先设置的比例;
所述步骤S2中预设的偏移数据包括操作层<canvas>高度方向与底层<canvas>高度方向之间的距离,以及操作层<canvas>宽度方向与底层<canvas>宽度方向之间的距离;
所述步骤S3中图像绘制轨迹包括操作层<canvas>上鼠标或触摸的位置数据,所述步骤S3具体包括以下步骤:
S31、在操作层<canvas>上绑定mousedown或touchstart事件,当mousedown或touchstart事件被触发后,开始记录正在绘制的标志位,并计算鼠标或触摸对应在操作层<canvas>上的位置,其中,mousedown事件对应为“鼠标按下”,touchstart事件对应为“触摸按下”;
S32、调用context的API——beginPath和moveTo,以在操作层<canvas>上开始绘制;
S33、对操作层<canvas>上的mousemove或touchmove事件进行检测,若在操作层<canvas>上检测到mousemove或touchmove事件,则根据当前绘制的标志位判断是否正在执行绘制操作,若判断为正在执行绘制操作,则记录mousemove或touchmove事件触发时的鼠标或触摸位置,其中,mousemove事件对应为“鼠标移动”,touchmove事件对应为“触摸移动”;
S34、根据mousemove或touchmove事件触发时的鼠标或触摸位置,计算得到操作层<canvas>上需要进行绘制的坐标位置;
S35、基于操作层<canvas>上需要进行绘制的坐标位置,调用context的API——lineTo和stroke,以在操作层<canvas>上绘制线条;
S36、对操作层<canvas>上的mouseup或touchend事件进行检测,若在操作层<canvas>上检测到mouseup或touchend事件,则记录mouseup或touchend事件触发时的鼠标或触摸位置,其中,mouseup事件对应为“鼠标按键松开”,touchend事件对应为“触摸离开”;
S37、将步骤S31、S33和S36中记录的鼠标或触摸位置数据整理为操作层<canvas>上的图像绘制轨迹。
2.根据权利要求1所述的一种基于HTML5 Canvas的绘图方法,其特征在于,所述步骤S34中操作层<canvas>上需要进行绘制的坐标位置具体为:
其中,xO表示操作层<canvas>上需要进行绘制的位置的横坐标,yO表示操作层<canvas>上需要进行绘制的位置的纵坐标,touchX表示mousemove或touchmove事件触发时的鼠标或触摸位置的横坐标,touchY表示mousemove或touchmove事件触发时的鼠标或触摸位置的纵坐标,left表示操作层<canvas>高度方向与底层<canvas>高度方向之间的距离,top表示操作层<canvas>高度方向与底层<canvas>高度方向之间的距离。
3.根据权利要求2所述的一种基于HTML5 Canvas的绘图方法,其特征在于,所述步骤S4具体包括以下步骤:
S41、根据操作层<canvas>上记录的mouseup或touchend事件触发时的鼠标或触摸位置,计算底层<canvas>的绘制坐标位置;
S42、基于底层<canvas>的绘制坐标位置以及操作层<canvas>上的图像绘制轨迹,在底层<canvas>上完成图像绘制;
S43、清除操作层<canvas>上记录的所有数据。
4.根据权利要求3所述的一种基于HTML5 Canvas的绘图方法,其特征在于,所述步骤S41中底层<canvas>的绘制坐标位置具体为:
其中,xB表示底层<canvas>的绘制坐标位置的横坐标,yB表示底层<canvas>的绘制坐标位置的纵坐标,touchX'表示操作层<canvas>上mouseup或touchend事件触发时的鼠标或触摸位置的横坐标,touchY'表示操作层<canvas>上mouseup或touchend事件触发时的鼠标或触摸位置的纵坐标。
CN201911197085.6A 2019-11-29 2019-11-29 一种基于HTML5 Canvas的绘图方法 Active CN111078035B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911197085.6A CN111078035B (zh) 2019-11-29 2019-11-29 一种基于HTML5 Canvas的绘图方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911197085.6A CN111078035B (zh) 2019-11-29 2019-11-29 一种基于HTML5 Canvas的绘图方法

Publications (2)

Publication Number Publication Date
CN111078035A CN111078035A (zh) 2020-04-28
CN111078035B true CN111078035B (zh) 2024-02-13

Family

ID=70312005

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911197085.6A Active CN111078035B (zh) 2019-11-29 2019-11-29 一种基于HTML5 Canvas的绘图方法

Country Status (1)

Country Link
CN (1) CN111078035B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112100538B (zh) * 2020-08-13 2022-04-12 福建天泉教育科技有限公司 基于canvas的图片交错平铺方法、存储介质
CN112100540B (zh) * 2020-08-13 2022-04-12 福建天泉教育科技有限公司 基于canvas的图片交叉镜像平铺方法、存储介质
CN112215957A (zh) * 2020-09-16 2021-01-12 哈尔滨新光光电科技股份有限公司 一种空中目标红外特性仿真方法
CN112433666B (zh) * 2020-12-14 2022-04-05 四川长虹电器股份有限公司 基于浏览器内核的触控绘制曲线的方法
CN112637539A (zh) * 2020-12-15 2021-04-09 浪潮云信息技术股份公司 一种基于Canvas绘制录像回放时间轴的方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105573702A (zh) * 2015-12-16 2016-05-11 广州视睿电子科技有限公司 远程批注移动、缩放的同步方法与系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6064381B2 (ja) * 2012-06-13 2017-01-25 株式会社リコー 情報共有システム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105573702A (zh) * 2015-12-16 2016-05-11 广州视睿电子科技有限公司 远程批注移动、缩放的同步方法与系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘耀钦 ; .HTML5 Canvas绘图技术及其在图像裁剪中的应用研究.洛阳师范学院学报.2016,(11),全文. *

Also Published As

Publication number Publication date
CN111078035A (zh) 2020-04-28

Similar Documents

Publication Publication Date Title
CN111078035B (zh) 一种基于HTML5 Canvas的绘图方法
CN109284059B (zh) 笔迹绘制方法、装置、交互智能平板和存储介质
US7190379B2 (en) Method for resizing and moving an object on a computer screen
US8847961B2 (en) Geometry, speed, pressure, and anti-aliasing for ink rendering
US7870501B2 (en) Method for hollow selection feedback
US20090091547A1 (en) Information display device
CN108829327B (zh) 交互智能设备的书写方法和装置
JP2006524367A (ja) ウェブページの拡大/縮小された表示に関する方法、システム、及び、プログラム
US8144166B2 (en) Dynamic pixel snapping
US6011549A (en) Method and apparatus for smooth scrolling of text using window
CN105930464B (zh) Web富媒体跨屏适配方法和装置
CN110502205B (zh) 图片显示边缘处理方法、装置、电子设备和可读存储介质
US10664072B2 (en) Multi-stroke smart ink gesture language
JP2014220720A (ja) 電子機器、情報処理方法及びプログラム
JP2012213019A (ja) 画像処理装置、画像処理方法及びプログラム
CN105894554A (zh) 图像处理方法和装置
CN103345389B (zh) 一种应用于网页的矢量图形的操作方法和装置
US9483171B1 (en) Low latency touch input rendering
US20080030525A1 (en) Pixel snapping for anti-aliased rendering
US9190018B2 (en) Vector-based customizable pointing indicia
CN105786314A (zh) 窗口调整方法及使用该方法的电子装置
JP6945345B2 (ja) 表示装置、表示方法及びプログラム
CN115774513B (zh) 基于尺子确定绘画方向的系统、方法、电子设备及介质
CN113535056B (zh) 基于InkCanvas的选框调整方法和相关设备
WO2023273462A1 (zh) 一种显示设备及填色方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant