设为首页 加入收藏

TOP

图形基础(四十三)
2010-12-30 21:10:52 来源: 作者: 【 】 浏览:40230
Tags:图形 基础
将忽略背景色,并且不填入空隙,可以通过呼叫GetBkMode来取得目前背景模式(TRANSPARENT或者OPAQUE)。

绘图方式
 

装置内容中定义的绘图方式也影响显示器上所画线的外观。设想画这样一条直线,它的色彩由画笔色彩和画线区域原来的色彩共同决定。设想用同一种画笔在白色表面上画出黑线而在黑色表面上画出白线,而且不用知道表面是什么色彩。这样的功能对您有用吗?通过绘图方式的设定,这些都可以实作。

当Windows使用画笔来画线时,它实际上执行画笔图素与目标位置处原来图素之间的某种位元布林运算。图素间的位元布林运算叫做「位元映射运算」,简称为「ROP」。由於画一条直线只涉及两种图素(画笔和目标),因此这种布林运算又称为「二元位元映射运算」,简记为「ROP2」。Windows定义了16种ROP2代码,表示Windows组合画笔图素和目标图素的方式。在内定装置内容中,绘图方式定义为R2_COPYPEN,这意味著Windows只是将画笔图素复制到目标图素,这也是我们通常所熟知的。此外,还有15种ROP2码。

16种不同的ROP2码是怎样得来的呢?为了示范的需要,我们假设使用单色系统,目标色(视窗显示区域的色彩)为黑色(用0来表示)或者白色(用1来表示),画笔也可以为黑色或者白色。用黑色或者白色画笔在黑色或者白色目标上画图有四种组合:白笔与白目标、白笔与黑目标、黑笔与白目标、黑笔与黑目标。

画笔在目标上绘制後会得到什么呢?一种可能是不管画笔和目标的色彩,画出的线总是黑色的,这种绘图方式由ROP2代码R2_BLACK表示。另一种可能是只有当画笔与目标都为黑色时,画出的结果才是白色,其他情况下画出的都是黑色。尽管这似乎有些奇怪,Windows还是为这种方式起了一个名字,叫做R2_NOTMERGEPEN。Windows执行目标图素与画笔图素的位元「或」运算,然後翻转所得色彩。

表5-2显示了所有16种ROP2绘图方式,表中指示了画笔色彩(P)与目标色彩(D)是如何组合而成结果色彩的。在标有「布林操作」的那一栏中,用C语言的表示法给出了目标图素与画笔图素的组合方式。

表5-2
画笔 (P): 目标 (D):1 11 0
0 1 0 0 布林 操作 绘图模式
结果: 0 0 0 0 0 R2_B
首页 上一页 40 41 42 43 44 45 46 下一页 尾页 43/83/83
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇键盘 下一篇输出文字

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: