首页 理论教育 HTML5开发技巧:使用组合方式展示图形

HTML5开发技巧:使用组合方式展示图形

时间:2023-10-26 理论教育 版权反馈
【摘要】:■source-over:显示图形时,新绘制的图形覆盖原先绘制的图形,这是默认值。■source-atop:只显示原图形中与新图形重叠部分及原图形的其余部分,其他部分作透明处理。其中,“source”表示新图形资源,“destination”表示原图形资源。下面将通过一个实例讲解在网页中使用组合的方式显示图形的方法。设置“globaICompositeOperation”属性值为“lighter”,表明与下面图形组合时的显示方式。

HTML5开发技巧:使用组合方式展示图形

如果在画布中绘制有多个交叉点的图形,则需要根据绘制时的先后顺序显示每个图形,在交叉处新绘制的图形会覆盖原有图形。如果想要改变这种默认多图组合的显示形式,可以通过修改上下文环境对象的“globaICompositeOperation”属性值来实现,此属性有多个属性值。具体说明如下。

■source-over:显示图形时,新绘制的图形覆盖原先绘制的图形,这是默认值。

■copy:只显示新图形,其他部分作透明处理。

■darker:两种图形都显示,在图形重叠部分,颜色由两个图形的颜色值相减后形成。

■destination-atop:只显示新图形中与原图形重叠部分及新图形的其余部分,其他部分作透明处理。

■destination-in:只显示原图形中与新图形重叠部分,其他部分作透明处理。

■destination-out:只显示原图形中与新图形不重叠部分,其他部分作透明处理。

■destination-over:与“Source-over”属性相反,原先绘制的图形将覆盖新绘制的图形。

■lighter:两种图形都显示,在图形重叠部分,颜色由两个图形的颜色值相加后形成。

■source-atop:只显示原图形中与新图形重叠部分及原图形的其余部分,其他部分作透明处理。

■source-m:只显示新图形中与原图形重叠部分,其他部分作透明处理。

■source-out:只显示新图形中与原图形不重叠部分,其他部分作透明处理。

■xor:两种图形都绘制,并透明处理图形重叠部分。

其中,“source”表示新图形资源,“destination”表示原图形资源。

下面将通过一个实例讲解在网页中使用组合的方式显示图形的方法。(www.xing528.com)

978-7-111-53392-4-Part02-351.jpg

在本实例的页面中新建了一个<canvas>元素,当页面被加载时调用自定义的函数pageload(),通过该函数创建一个正方形和圆形,将两个图形组合后的“globalComposite Operation”的属性值设为“lighter”,并将组合后的图形结果显示在画布中。实例文件11.html的代码如下。

978-7-111-53392-4-Part02-352.jpg

编写脚本文件js11.js,首先自定义了两个函数drawRect()与drawCirc(),分别用于根据设置的上下文环境参数值,绘制正方形与圆形。当加载页面时触发页面的“onLoad”事件,在该事件中调用另一个自定义函数pageload()。此函数的运作流程如下:

(1)通过ID号获取画布元素<canvas>,并根据画布元素取得上下文环境对象“cxt”。

(2)传递“cxt”对象,调用函数drawRect()在画布中先绘制一个正方形。

(3)设置“globaICompositeOperation”属性值为“lighter”,表明与下面图形组合时的显示方式。

(4)调用函数drawCirc()在画布中绘制一个圆形,两个图形的重叠部分将按照设置的“globalCompositeOperation”属性值进行组合显示。

文件js11.js的代码如下。

978-7-111-53392-4-Part02-353.jpg

978-7-111-53392-4-Part02-354.jpg

执行后的效果如图6-11所示。

978-7-111-53392-4-Part02-355.jpg

图6-11 执行效果

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈