版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
字符的绘制内容大纲1字符简介2点阵字符3矢量字符字符点阵字符:用矩形点阵表示字符形状矢量字符:用笔画信息表示字符形状1字符简介245rtedHJHGD网络!@#%^+<>(1)点阵字符的存储111111
000
11
00
11
00
11
00
01
10
11000
110
11
000
11011
00
11
0111111
0000000000FC6663636366FC00一个二进制位表示一个点十六进制8×8点阵字符882521029999991022520十进制2点阵字符00011000001111000
11
0011
00
11001
1
00
11
11
11
00
11
00
11
0011001
1
000000000
24601021021261021020十进制000
1111
00
0
10
00010
11
000000
11000000
11
00000001
10001000
111
1
000000000303396969633300十进制(1)点阵字符的存储2点阵字符(2)点阵字符的显示111111
000
11
0011
00
11
000
110
11000110
11
0001
10
11
00
11
0111111
0000000000BYTEm[8]={252,102,99,99,99,99,102,252,0};2726252423222120if((m[4]&pow(2,5))==pow(2,5))x=2,y=4if((m[y]&pow(2,7-x))==pow(2,7-x))x=01234567y=012345672点阵字符主要代码:BYTEm[8]={252,102,99,99,99,102,252,0};for(inty=0;y<8;y++)for(intx=0;x<8;x++)if((m[y]&(BYTE)pow(2,7-x))==(BYTE)pow(2,7-x))pDC->SetPixel(x+x0,y+y0,color);111111
000
11
0011
00
11
000
110
11000110
11
000
110
11
00
11
0111111
00000000002726252423222120x=01234567y=012345672点阵字符(2)点阵字符的显示【问题1】如何显示用户指定点阵字符?16×16点阵字符0111111111110
00001111111111110000
01110
00
001
111000
01110
000001
11100
01
110
000001
1110001
11
00
00001
11100
01110
000001
1110001110000001
1110001110000001
1110001110000001
1110001110000001
1110001110000001
1110001110000001
111000111000001
11100011111111111110000111111111100002点阵字符(2)点阵字符的显示shortm[16]={……};for(inty=0;y<16;y++)for(intx=0;x<16;x++)if((m[y]&(BYTE)pow(2,15-x))==(BYTE)pow(2,15-x))pDC->SetPixel(x+x0,y+y0,color);2点阵字符【应用案例】简易时钟的绘制(1)设计数字点阵(2)简易时钟表盘设计(3)时钟指针移动模拟:时钟函数OnTimer移动秒针
3矢量字符(1)矢量字符的存储从原点开始,移到a(10,10)建立局部坐标系画线到b(10,110)结束画线到c(60,110)画曲线到d(60,60)[中间点为(80,85)]画曲线到e(60,10)[中间为(80,35)]画直线到a(10,10)移到f(10,60)画线到d(60,60)3矢量字符(1)矢量字符的存储不易设置合适的端点坐标问题:记录笔画的方向及长度解决:3矢量字符(1)矢量字符的存储如何存储字符笔画的方向及长度?方向编码0、1、2方向的x值相同
2、3、4方向的y值相同
1方向的y值是x值的一半3方向的x值是y值的一半2方向的x值与y值相同xyxy0123456789ABCDEF3矢量字符(1)矢量字符的存储A1,3D,33,1B,28,01表示落笔,
2表示抬笔,0表示结束长度+方向xy0123456789ABCDEF1,3D,33,2,29,1,20,01,3D,33,2,39,1,20,01,3D,33,2,2A,1,10,03矢量字符(1)矢量字符的存储【例】“北”字的编码:24,49,41,44,38,30,44,2,20,1,5C,31,39,5C,40,24,01,1表示落笔2表示抬笔0表示结束长度+方向3矢量字符C语言的16进制表示:0x5C24,49,41,44,38,30,44,2,20,1,5C,31,39,5C,40,24,01,BYTEbh[20]={1,0x24,0x49,0x41,……};(1)矢量字符的存储3矢量字符(2)矢量字符的显示BYTEbh[20]={1,0x24,0x49,0x41,……};获取笔画方向、笔画长度XXXXXXXX长度方向00001111(15)
0000XXXXXXXXXXXXd=bh[i]&15;lens=bh[i]>>4;3矢量字符(2)矢量字符的显示i=0;while(bh[i]!=0)//确定是否该字符结束{if(bh[i]==1||bh[i]==2)bz=bh[i];//如果是抬笔落笔标志,保存else{d=bh[i]&15;lens=bh[i]>>4;//获取笔画方向和长度switch(d)//不同方向坐标变化不同{case0:x=x+lens;break;//0方向case1:x=x+lens;y=y+lens/2;break;//1方向case2:x=x+lens;y=y+lens;break;//2方向case3:x=x+lens/2;y=y+lens;break;//3方向……}if(bz==2)pDC->MoveTo(x,y);//2抬笔,只移动不画elsepDC->LineTo(x,y);//1落笔,画线}i++;}关键程序代码3矢量字符(3)矢量字符的缩放i=0;while(bh[i]!=0){if(bh[i]==1||bh[i]==2)bz=bh[i];else{d=bh[i]&15;lens=bh[i]>>4;switch(d){case0:x=x+
lens;break;case1:x=x+
lens;y=y+
lens/2;break;case2:x=x+
lens;y=y+
lens;break;
case3:x=x+
lens/2;y=y+
lens;break;……
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年云南省普洱市法检系统书记员招聘考试参考试题及答案详解
- 2026湖北黄石大冶市第一中学招聘教师4人笔试题库【满分必刷】附答案详解
- 2026年云南省临沧市街道办人员招聘考试模拟试题及答案详解
- 2026年武汉市江汉区中小学教师招聘考试备考试题及答案详解
- 2026年邯郸市邯山区法检系统书记员招聘考试模拟试题及答案详解
- 2026年吕梁地区中小学教师招聘考试模拟试题及答案详解
- 2026年蚌埠市淮上区中小学教师招聘笔试备考题库及答案详解
- 2026年广西壮族自治区防城港市辅警协警招聘笔试参考题库及答案详解
- 2026年吉林省松原市中小学教师招聘考试模拟试题及答案详解
- 2026年郑州市管城回族区法检系统书记员招聘笔试模拟试题及答案详解
- 委托收款协议合同协议
- 事故处理委托书模板
- DB37-T 4581 2023 家庭养老床位设置与服务要求
- 文本课件制作教学课件
- 电力工程居间合作协议样本
- 施工勘察方案
- 《水浒传》名著导读优质课教学设计(部编版九年级上册)-
- 分布式光伏发电系统项目EPC总承包合同模板
- 5500必考词考研英语
- GM/T 0109-2021基于云计算的电子签名服务技术要求
- GB/T 5013.4-2008额定电压450/750V及以下橡皮绝缘电缆第4部分:软线和软电缆
评论
0/150
提交评论