介绍
这篇文章给大家分享的是有关清空帆布画布内容的方法有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
我们知道,清空帆布画布内容有以下两个方法。
第一种方法是cearRect函数:
context.cearRect (0, 0, canvas.width canvas.height)
第二种方法就是用原值重新设置一下画布的宽(或者高)
canvas.width =canvas.width//,趁机 canvas.height =,画布。高度
第二种方法可以起作用,是因为画布上的一个特点:
每当画布的高度或宽度被重设时,画布内容就会被清空相。关内容可以参考https://www.w3school.com.cn/html5/att_canvas_width.asp
在一个可视化项目中,我们发现在一些电脑上面总是会出现效果错乱的情况。
经过调试,我们发现,原来是“canvas.width=画布。宽度”惹的祸。普通屏幕下面下不会有问题,但是如果屏幕是高清屏,就会出现问题。这是因为,高清屏下,我们为了处理绘制图形模糊的问题,通常会做如下处理:
function setupCanvas(画布),{ ,,,,,,,let width =, canvas.width, ,,,,,,,,,height =, canvas.height, ,,,,,,,,,dpr =, window.devicePixelRatio | |, 1.0; ,,,,,,,if (dpr !=, 1.0,), { ,,,,,,,,,canvas.style.width =, width +,“px"; ,,,,,,,,,canvas.style.height =, height +,“px"; ,,,,,,,,,canvas.height =, height *, dpr; ,,,,,,,,,canvas.width =, width *, dpr; ,,,,,,,,,ctx.scale (dpr, dpr); ,,,,,,,} ,,,,,}
我们知道,高清屏下window.devicePixelRatio都大于1。所以在绘图之前画笔会被缩放:
ctx.scale (dpr, dpr);
我们知道cavnas是基于状态的绘图组件。其中缩放比例值也在状态管理之中。当我们重新设置画布的宽(高也一样)的时候,不仅会清空帆布的画布内容,同时还会把绘图状态重置到最原始的状态,原始状态下画笔的缩放比例是1,缩放比例值会被重置为1,因而导致绘制效果错乱。
感谢各位的阅读!关于“清空帆布画布内容的方法有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!