/************************************************
创建日期:2004.8.28 版本:0.1 作者:CenturyMagus 功能作用:dos下汉字的输出 *************************************************/
#include #include
/*字型库*/ char CN_LIST[9][32]= { ? { /* 天 */ ??? 0x00,0x00,0x3F,0xFC,0x01,0x00,0x01,0x00, ??? 0x01,0x00,0x01,0x00,0x7F,0xFE,0x01,0x00, ??? 0x01,0x00,0x02,0x80,0x02,0x40,0x04,0x20, ??? 0x08,0x18,0x10,0x0E,0x20,0x04,0x40,0x00, ? },
? {? /* 津 */ ??? 0x40,0x40,0x20,0x40,0x27,0xF8,0x00,0x48, ??? 0x8F,0xFE,0x50,0x48,0x57,0xF8,0x10,0x40, ??? 0x20,0x40,0xE7,0xF8,0x20,0x40,0x2F,0xFE, ??? 0x20,0x40,0x20,0x40,0x20,0x40,0x20,0x40, ? },
? { /* 工 */ ??? 0x00,0x00,0x3F,0xFC,0x01,0x00,0x01,0x00, ??? 0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00, ??? 0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00, ??? 0x01,0x00,0xFF,0xFE,0x00,0x00,0x00,0x00, ? },
? {/* 业 */ ??? 0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x44, ??? 0x44,0x46,0x24,0x4C,0x24,0x48,0x14,0x50, ??? 0x1C,0x50,0x14,0x60,0x04,0x40,0x04,0x40, ??? 0x04,0x44,0xFF,0xFE,0x00,0x00,0x00,0x00, ? },
? {/* 大 */ ??? 0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00, ??? 0x01,0x00,0xFF,0xFE,0x01,0x00,0x02,0x80, ??? 0x02,0x80,0x02,0x40,0x04,0x40,0x04,0x20, ??? 0x08,0x10,0x10,0x18,0x20,0x0E,0x40,0x04, ? },
? {/* 学 */ ??? 0x01,0x08,0x10,0x8C,0x0C,0xC8,0x08,0x90, ??? 0x7F,0xFE,0x40,0x04,0x8F,0xE8,0x00,0x40, ??? 0x00,0x80,0x7F,0xFE,0x00,0x80,0x00,0x80, ??? 0x00,0x80,0x00,0x80,0x02,0x80,0x01,0x00, ? },
? {/* 空格符 */ ??? 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, ??? 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, ??? 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, ??? 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, ? },
? {/* 艾 */ ??? 0x04,0x40,0x04,0x40,0xFF,0xFE,0x04,0x40, ??? 0x04,0x40,0x08,0x20,0x08,0x30,0x04,0x20, ??? 0x04,0x40,0x02,0x80,0x01,0x00,0x02,0x80, ??? 0x04,0x40,0x08,0x30,0x30,0x0E,0xC0,0x40, ? },
? {/* 浩 */ ??? 0x20,0x40,0x10,0x40,0x12,0x40,0x03,0xFC, ??? 0x8A,0x40,0x4c,0x40,0x50,0x40,0x17,0xFE, ??? 0x10,0x00,0x20,0x00,0xE3,0xFC,0x22,0x04, ??? 0x22,0x04,0x22,0x04,0x23,0xFC,0x22,0x04, ? },
};
/*---------------------------------------------------------*/ /*显示中文单字的子程序*/ ShowFontCN16(int x,int y,int number)? /*y表示纵坐标,number表示字型编号*/ { ?int i,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15; ?char char_a;
? /* 记录X轴的坐标*/ ? x1 = x+1; ? x2 = x+2; ? x3 = x+3; ? x4 = x+4; ? x5 = x+5; ? x6 = x+6; ? x7 = x+7; ? x8 = x+8; ? x9 = x+9; ? x10 = x+10; ? x11 = x+11; ? x12 = x+12; ? x13 = x+13; ? x14 = x+14; ? x15 = x+15;
? for( i=0; i<32; i+=2) ? { ??? char_a = CN_LIST[number][i];
??? /*char_a和0x08,0x40,0x20,0x10进行与运算,以得到哪一个点应该有点*/ ??? if ( char_a? & 0x80 ) putpixel(x? ,y,15); ??? if ( char_a? & 0x40 ) putpixel(x1 ,y,15); ??? if ( char_a? & 0x20 ) putpixel(x2 ,y,15); ??? if ( char_a? & 0x10 ) putpixel(x3 ,y,15); ??? if ( char_a? & 0x08 ) putpixel(x4 ,y,15); ??? if ( char_a? & 0x04 ) putpixel(x5 ,y,15); ??? if ( char_a? & 0x02 ) putpixel(x6 ,y,15); ??? if ( char_a? & 0x01 ) putpixel(x7 ,y,15);
??? char_a = CN_LIST[number][i+1]; ??? if ( char_a? & 0x80 ) putpixel(x8 ,y,15); ??? if ( char_a? & 0x40 ) putpixel(x9 ,y,15); ??? if ( char_a? & 0x20 ) putpixel(x10,y,15); ??? if ( char_a? & 0x10 ) putpixel(x11,y,15); ??? if ( char_a? & 0x08 ) putpixel(x12,y,15); ??? if ( char_a? & 0x04 ) putpixel(x13,y,15); ??? if ( char_a? & 0x02 ) putpixel(x14,y,15); ??? if ( char_a? & 0x01 ) putpixel(x15,y,15); ??? y++; ? } }
/*---------------------------------------------------------*/ main() {
? int number;?? /*字型的编号*/ ? int graphdriver; ? int graphmode; ? int i;
? while(1) ? { ??? graphdriver = DETECT; ??? initgraph(&graphdriver,&graphmode,"");
??? for(i=0;i<9;i++)??/*显示"天津工业大学 艾浩"*/ ????? { ??????? ShowFontCN16((i+1)*16,5,i); ????? }
??? printf("\n\nPlease input the number of the Font(0--7):\n"); ??? scanf("%d",&number);
??? ShowFontCN16(0,100,number);?? /*输出指定的字符*/
??? getch(); ??? closegraph();
? }
}

|