第8讲 绘图.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8讲 绘图

第8讲 绘图 Windows是一个图形操作系统。传统的Windows程序设计方法在处理有关图形的设计时,多是按照自Windows诞生以来的方法——图形设备接口GDI来进行的。C++ Builder的VCL对庞大繁杂的GDI绘图系统进行了良好的封装,提供了简便易用的TCanvas画布类,使得在Windows中进行图形编程变得简单。 1 颜色表示 根据颜色的RGB三基色模型,自然界中任何一种颜色都可以用红、绿、蓝三种基本色来表示。在计算机程序中,对于最常用的24位色,红、绿、蓝每种分量各占一个字节即8位的存储空间,它们的取值范围都是0~255,共可组合出256*256*256颜色。 因为颜色可由一个三元的矢量(R,G,B)来表示,所以三元组合(0,0,0)用来表示黑色,因为所有颜色的强度都为0;而三元组合(255,0,0)用来表示红色;(255,255,0)用来表示黄色(红+绿=黄)。 在程序中使用颜色的方法有两种: 使用C++ Builder提供的宏“RGB()” 例如绿色可以表示为RGB(0,255,0),白色可以表示为RGB(255,255,255)等。 使用Graphic.hpp中定义的一些颜色常量 例如clBlack、clGreen、clLime、clOlive、clRed等。 2 TCanvas画布常用属性 TCanvas画布的属性非常多,而且它的许多属性本身又是一个对象,这些对象又包含了许多各自的子属性。 2.1 画笔属性 TCanvas的画笔属性(Pen)是一个TPen对象。它设置了在使用画布进行画线时,画笔的宽度、颜色、线型和绘图模式。 Width属性 该属性用于确定画笔的宽度,默认值为1。可以按如下代码设置笔的宽度为5: Canvas-Pen-Width = 5; Color属性 该属性用于确定画笔的颜色,默认值为黑色。可以按如下代码设置笔的颜色为蓝色: Canvas-Pen-Color = clBlack; 或 Canvas-Pen-Color = RGB(0,0,255); Style属性 该属性确定画笔画线的各种类型。线的类型如下表所列: 值 说明 psSolid 实心线 psDash 由下划线组成的线段 psDot 由点组成的线段 psDashDot 点划线 psDashDotDot 双点划线 psClear 看不见的线 psInsideFrame 实心线。如果线宽大于一个像素则使用抖动色彩 2.2 画刷属性 TCanvas的画刷属性(Brush)是一个TBrush对象,它封装了Windows的刷子对象,可以用颜色和图案来填充矩形、多边形和圆等。 可以使用画刷的Color属性设置画刷的颜色或使用画刷的Bitmap属性设置画刷的填充图案,Bitmap属性是一个TPicture对象,它是一个位图。 2.3 字体属性 TCanvas的字体属性(Font)是一个TFont对象,它设置了在画布上输出文字时的字体。字体属性常用的属性有字体颜色、大小、样式和字体名称。 Name属性 此属性用于设置字体的名称,如Arial、Times New Roman、宋体等。可以按如下代码设置画布的字体名称: Canvas-Font-Name = 宋体; Size属性 此属性用于设置字体的大小。 Style属性 此属性用于设置字体的样式,它是枚举的数据类型。可用的Style属性有fsBold(黑体)、fsItalic(斜体)、fsUnderline(下划线)和fsStrikeOut(删除线)等。 2.4 像素属性 TCanvas的像素属性(Pixel)是一个TColor对象,它设置了画布上某点的颜色。例如可设置画布上坐标为(50,50)处的像素点的颜色为红色,可以使用如下代码: Canvas-Pixel[50][50] = clRed; 下面的代码用来在窗体上画一个255*255大小的彩色正方形: void __fastcall TForm1::FormClick(TObject *Sender) { for(int i=0; i255; i++) { for(int j=0; j255; j++) { Form1-Canvas-Pixels[i][j] = RGB(i, j, (i+j)/255); } } } 程序运行结果如下图所示: 3 TCanvas画布常用方法 TCanvas用于画图的方法较多,可以大致将它们分为四种类型:画线、画填充图形、文本输出和图形拷贝。 3.1 画线 TCanvas提供了强大的画线功能,利用TCanvas的画线方法可以绘制直线,椭圆的弧线和贝塞尔曲线等。 画直线 绘制直线涉级到两个方法:MoveTo和LineTo。 MoveTo(int

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档