當前位置:編程學習大全網 - 源碼下載 - c語言字模問題

c語言字模問題

void drawmat(char *mat,int matsize,int x,int y,int color)

/*依次:字模指針、點陣大小、起始坐標(x,y)、顏色*/

{int i,j,k,n;

n=(matsize-1)/8+1;//n是點陣的列數

for(j=0;j<matsize;j++)//j代表點陣中第j行的字符意思

for(i=0;i<n;i++)//i代表點陣中第i列字符的意思

for(k=0;k<8;k++)//k代表在當前字模中,第k位的值

if(mat[j*n+i]&(0x80>>k)) /*測試為1的位則顯示*/

putpixel(x+i*8+k,y+j,color);

}

妳把字模的每個矩陣元素用二進制展開就知道k的意思了:

char shan16[]={

/* 以下是 '山' 的 16點陣宋體 字模,32 byte */

0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,

0x01,0x00,0x01,0x00,0x01,0x08,0x21,0x08,

0x21,0x08,0x21,0x08,0x21,0xF8,0x2E,0x08,

0x30,0x08,0x00,0x00,0x00,0x00,0x00,0x00,

};

相當於:

0000 0000 0000 0000 0000 0001 0000 0000

0000 0001 0000 0000 0000 0001 0000 0000

0000 0001 0000 0000 0000 0001 0000 0000

0000 0001 0000 1000 0010 0001 0000 1000

0010 0001 0000 1000 0010 0001 0000 1000

0010 0001 1111 1000 0010 1110 0000 1000

0011 0000 0000 1000 0000 0000 0000 0000

0000 0000 0000 0000 0000 0000 0000 0000

最後得到:

_______________8________________

___________8___8________________

___________8___8________________

______8____8___8________8___8___

__8___8____8___8________8___8___

__8___8____8888_8888____8___8___

__88____________________8_______

________________________________

  • 上一篇:在國外如何解除在大陸網站看視頻的限制?
  • 下一篇:做壹個類似論壇社區的小程序多少錢?
  • copyright 2024編程學習大全網