- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- 第4课 科技力量大 第1课时(课件)2025道德与法治三年级上册统编版.pptx
- 急!错误号—2146827859如何解决&浏览器不能创建xml组件.docx VIP
- 外研版小学英语单词汇总(三年级-六年级).pdf VIP
- 涉企行政检查规范培训.pptx
- 单元语法和配套练习 Unit 4 新版 2025年新外研版八年级上册.pdf
- 川教版(2024)《信息技术》四年级上册 第一单元 第3节 《会讲故事的数据》课件.pptx VIP
- 常用化工设备标准规范.pdf VIP
- 单元语法和配套练习 Unit 3 新版 2025年新外研版八年级上册.pdf
- OTIS奥旳斯ACD5调试手册调试资料DAA29100AD_SUR_ACD5-77.pdf
- 股权转让协议担保.docx VIP
文档评论(0)