- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CBuilder中的图像显示技巧
C++ Builder 中的图像显示技巧在C++ Builder中,实现一幅图像的显示非常简单,只要在Form窗体中定义一个TImage组件,设置其Picture属性,然后选择任何有效的.ico、.bmp、.emf或.wwf文件,加载进来,所选文件就显示在TImage组件中。但这只是直接将图形显示在窗体中,毫无技巧可言,给人感觉是一种枯燥乏味。为了使图形显示有别具一格的效果。按下列步骤实现:
1、 定义一个TImage组件,把要显示的图形先加载到TImage组件中,也就是说,把图形内容从磁盘载入内存中,作为图形缓存。
2、 创建一新的位图对象,其尺寸跟TImage组件中的图形一样。
3、 利用画布(Canvas)的CopyRect功能(将一个画布的矩形区域拷贝到另一个画布的矩形区域),以达到动态显示位图。
下面介绍各种图形显示技巧的具体实现方法。
上拉效果
图1
实现原理:首先将暂存图形的第一条水平线,搬移至要显示位图的最后一条,接着再将暂存图形的前两条水平线,依次搬移至要显示位图的最后两条水平线,然后搬移前三条、前四条直到全部图形数据搬完为止。在搬移的过程中即可看到显示的位图由下而上浮起,而达到上拉的效果(如图1)。
程序算法:
void _fastcall TFor-
m1::Button1Click(TObject *Sender)
{int i,width,height;
Graphics::TBitmap *newbmp;
newbmp=new Graphics::TBitmap;
newbmp-〉Width=Image1-〉Width;
newbmp-〉Height=Image1-〉Height;
width=Image1-〉Width;
height=Image1-〉Height;
for(i=0;i
{newbmp-〉Canvas-〉CopyRect(Rect(0,height-i,width,height),
Image1-〉Canvas,Rect(0,0,width,i));
Form1-〉Canvas-〉Draw(10,10,newbmp);}
delete newbmp;}
从左向右平铺显示效果
图2
实现原理:首先将暂存图形的最后一条竖线,搬移至要显示位图的第一条竖线,接着再将暂存图形的最后两条竖线,依序搬移至要显示位图的前两条竖线,然后搬移最后三条、四条竖线直到全部图形数据搬完为止。在搬移的过程中即可看到显示的位图由左向右浮起,而达到从左向右平铺显示的效果(如图2)。
程序算法:
void _fastcall TForm1::Button2Click(TObject *Sender)
{int i,width,height;
Graphics::TBitmap *newbmp;
newbmp=new Graphics::TBitmap;
newbmp-〉Width=Image1-〉Width;
newbmp-〉Height=Image1-〉Height;
width=Image1-〉Width;
height=Image1-〉Height;
for(i=0;i=width;i++)
{ newbmp-〉Canvas-〉
CopyRect(Rect(0,0,i,height),
Image1-〉Canvas,Rect(width-i,0,width,height));
Form1-〉Canvas-〉Draw(10,10,newbmp); }
delete newbmp;}
垂直交错效果
图3
实现原理:将要显示的图形拆成两部分,奇数条扫描线由上往下搬移,偶数条扫描线则由下往上搬移,而且两者同时进行。便可看到分别由上下两端出现的较淡图形向屏幕中央移动,直到完全清楚为止(如图3)。
程序算法:
void __fastcall TForm1::BitBtn3Click(TObject *Sender)
{Graphics::TBitmap *newbmp;
int i,j,height,width;
newbmp=new Graphics::TBitmap;
newbmp-〉Width=Image1-〉Width;
newbmp-〉Height=Image1-〉Height;
height=Image1-〉Height;
width=Image1-〉Width;
i=0;
while(i=height)
{for(j=0;j
{newbmp-〉Canvas-〉CopyRect(Rect(j*
您可能关注的文档
- ANSYS 的内存管理和使用.doc
- ANSVMSCORERFORMORESENSITIVEANDRELIABLEPEPTIDEIDENTIFICATIONVIATANDEMMASSSPECTR.pdf
- ANSYS变量与函数及表达式.doc
- ansys命令中英文解释.doc
- ANSYS基本分析过程.ppt
- ANSYS软件中常用英语单词或词组.doc
- ansys平面计算方法介绍.pdf
- ANSYS电磁场分析例子.ppt
- ANSYS静电场分析(P方法).pdf
- Ant systems Local Search Optimization for flexible Job Shop Schedul Production.pdf
- 湖南省长沙市华益中学2024-2025学年七年级上学期期末考试英语试题.docx
- 吉林省吉林市第三十中学2024-2025学年九年级上学期期末考试数学试题.docx
- 湖南省长沙市湖南师范大学附属中学2024-2025学年高二上学期期末考试数学试题.docx
- 湖南省长沙市宁乡市2024-2025学年高二上学期1月期末地理试题.docx
- 湖南省长沙市宁乡市2024-2025学年高二上学期1月期末生物试题.docx
- 湖南省长沙市开福区青竹湖湘一外国语学校2024-2025学年八年级上学期期末地理试题.docx
- 湖南省长沙市雅礼教育集团联考2024-2025学年八年级上学期1月期末历史试题.docx
- 湖南省长沙市长郡集团2024-2025学年八年级上学期期末考试英语试题.docx
- 湖南省长沙市长郡集团2024-2025学年九年级上学期期末考试化学试卷.docx
- 湖南省长沙市长郡教育集团2024-2025学年八年级上学期1月期末历史试题.docx
最近下载
- 就业居间合同协议书范本.docx VIP
- 海德汉数控机床系统简明调试手册.pdf VIP
- DB33T 2034-2017 茶树高温热害等级.pdf VIP
- 道路清扫保洁项目工作难点分析及解决措施.docx VIP
- 东华理工大学2024-2025学年第1学期《高等数学(上)》期末考试试卷(B卷)附参考答案.pdf
- 3D测头-海德汉.PDF VIP
- 黑龙江省2024年1月普通高中学业水平合格性考试英语试题(含答案,无听力原文及音频).pdf VIP
- 开展社会稳定风险评估所需资料清单(2021年修正版).docx VIP
- 《医学统计课件:聚类分析的应用》.ppt VIP
- 小儿推拿学试卷及答案.docx VIP
原创力文档


文档评论(0)