快速业务通道

SWT全接触 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
ngle(5,5,90,45,25,15);

像GC.fillRectangle(...)方法一样,右面和下面的边缘不被包含在内,于是右下角的坐标为(94,49 )而不是(95,50)。

GC.fillOval(int x, int y, int width, int height); gc.fillOval(5,5,90,45);

GC.fillArc(int x, int y, int widt4h., int height, int  startAngle, int endAngle); gc.fillArc(5,5,90,45,90,200);

fillArc()的参数和drawArc()的参数是类似的,偏移量是从右面的轴开始填充,然后沿逆时针方向旋 转给定的角度(endAngle-startAngle)。

GC.fillGradientRectangle(int x, int y, int width. int height, vertical boolean);

这个方法让我们可以指定图形在填充时所用的颜色可以从GC的前景色按梯度变化(渐变)到背景色。 梯度既可以是横向的也可以是纵向的。

gc.setBackgrouind(display,getSystemColor(SWT.COLOR_BLUE)); gc.fillGradientRectangle(5,5,90,45,false);

上面两条语句建立了一个使用黑色背景的从左至右的横向梯度填充。和其他填充方法一样,左面和下 面的边缘不被包括在内,所以由下角的位置缩小一个像素。

gc.setBackground(display.getSystemColor(SWT.COLOR_BLUE)); gc.setForeground(display.getSystemColor(SWT.COLOR_CYAN)); gc.fillGradientRectangle(5,5,90,45,true);

上面这3行代码的含义为在纵向自顶向下用前cyan(景色)开始,并以蓝色(背景色)结束的填充。

SWT全接触(12)

时间:2011-11-09 IBM 薛笛

3.9 异或(XOR)

如果你设置了GC的XOR模式为true的话,将会发生如下情况:对于每一个像素点,原来被显示的红,绿 ,蓝的值将被已存在的红,绿,蓝色进行异或操作,所得结果既作为新的目标像素。

shell.setBackground(display.getSystemColor(SWT.COLOR_WHITE)); // ... gc.setBackground(display.getSystemColor(SWT.COLOR_BLUE)); gc.fillRectangle(5,5,90,45); gc.setXORMode(true); gc.setBackground(display.getSystemColor(SWT.COLOR_WHITE)); gc.fillRectangle(20,20,50,50); gc.setBackground(display.getSystemColor(SWT.COLOR_RED)); gc.fillOval(80,20,50,50);

3.10 绘制图像(Draw Image)

类org.eclipse.swt.graphics.Image被用来表示准备要在像打印机,显示器这样的设备上显示的图形 。建立一个图像最简单的方法就是从组织好的文件格式中装载它。SWT所支持的图像格式有:GIF,BMP, JGP,PNG和TIFF。

Image image = new Image(display,"C:/eclipse_lg.gif"); GC.drawImage(Image image, int x, int y);

每幅图像都有用其边界决定的尺寸。例如,图象eclipse_lg.gif的大小为115*164,我们可以通过 image.getBounds()方法来进行设定。当一幅图像被绘制的时候,它将会以自身定义的边界作为显示之后 的宽和高。gc.drawImage(image,5,5);

至此,SWT在2D绘图方面的讲解告一段落,上面所提到的内容涵盖了SWT的大部分绘图功能,并在每个 部分都给出了要注意的细节。至于具体实现就要靠各位的聪明才智了。下面让我们进入最后的部分-SWT的 3D绘图。

4 SWT与OpenGL编程

相较于Java3D API来说,SWT以前在3D图形绘制方面一直没有什么好的表现。OpenGL的加入会不会使 SWT在3D领域有所作为还尚未可知,不过起码IBM的程序员们给了SWT机会。当大家了解了这个正处于试验 阶段的组合之后,我们在SWT上绘制3D图形就不再是噩梦。

OpenGL是一个为创建高性能2D,3D图形而设计的多平台的标准。其硬件和软件的实现存在于多个系统 之中,包括Windows,Linux和 MacOS。OpenGL可以用于渲染简单的2D图形或复杂的3D游戏图形(OpenGL最 主要的应用领域就是游戏)。作为一个正在处于事件阶段的 Eclipse插件,我将在下

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号