首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >清除HTML5画布上的线条

清除HTML5画布上的线条
EN

Stack Overflow用户
提问于 2011-07-09 03:21:31
回答 4查看 12.3K关注 0票数 5

有没有一种方法可以取消线条的描边?在我的画布上,我有一条不透明度为0.5,宽度为20像素的线条。现在我想让它变得更长,意思是从旧的线中画出另一条线。这样做时,新旧线条之间的匹配点会变得不那么透明(因为它们现在由两条线组成)。因此,我想取消对旧线的描边,然后对新线进行描边。

我该怎么做呢?

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-07-09 17:42:23

如何绘制到画布是由API严格定义的,但如何在软件和/或硬件中完成则取决于浏览器开发人员。一些浏览器使用硬件加速,其他的正在atm上工作。(例如,使用软件渲染器atm)

在计算机图形学中,当绘制一些东西时,你会绘制到一个缓冲区。当你调用lineTo和笔划时,缓冲区会更新,底层像素中的所有信息都会丢失(如果你使用透明度,就会丢失部分信息),而且没有办法通过撤消来找回它(除非有一个包含大量旧绘图的实现,但这对内存来说确实很重)。

因此,能够撤消笔划可能会节省大量的CPU/GPU时间,但会大大增加内存

票数 5
EN

Stack Overflow用户

发布于 2011-07-09 03:34:02

clearRect()是实现这一目标的唯一方法。解决这个问题的一个好方法(如果您在画布上绘制了许多元素)是使用绝对定位在HTML中覆盖两个画布,其中一个用于“静态”绘图,另一个用于您计划清除/重绘的绘图。这也节省了CPU再次绘制所有画布的时间。

票数 11
EN

Stack Overflow用户

发布于 2012-05-18 17:22:25

另一个不错的选择是将'globalCompositeOperation‘设置为'xor’,然后绘制again....so线条,它将被删除

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6629386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档