浅谈C语言点阵字模编程之一

浅谈C语言点阵字模编程之一

作者:张桂权

     汉字点阵式编程之一,DOS下64点阵“我爱你!”的实现。我是在Win-TC编程环境下通过汉字点阵生成工具直接产生512byte的64点阵数组,然后再对起进行操作的来实现的。代码很简单。原代码如下:

#include <Conio.h>
#include <graphics.h>
#define     closegr closegraph

/*初始化运行环境,注册驱动程序以实现程序的独立运行(脱离与Win-TC之间的关系)的功能*/

void initgr(void){
  int gd = DETECT, gm = 0;
  registerbgidriver(EGAVGA_driver);
  initgraph(&gd, &gm, "");
}

/*实现制图的方法*/

void drawmat(char *mat, int matsize, int x, int y, int color){
  int i, j ,k , n;
  n = (matsize - 1) / 8 + 1;
  for(j = 0; j < matsize; j++)
    for(i = 0 ; i < n; i++ )
      for(k = 0; k < 8; k++)
        if(mat[j * n + i] & (0x80 >> k))
          putpixel(x + i * 8 + k, y + j , color);
}

char wo64H[]={
/* 以下是 '我' 的 64点阵华文彩云 字模,512 byte */
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,
  0x00,0x00,0x01,0xFF,0x1F,0xF8,0x00,0x00,
  0x00,0x00,0x3F,0x00,0xF8,0x04,0x00,0x00,
  0x00,0xFF,0xE0,0x00,0x70,0x07,0x80,0x00,
  0x03,0x80,0x00,0x00,0x60,0x07,0xF0,0x00,
  0x06,0x00,0x00,0x00,0x20,0x08,0x08,0x00,
  0x04,0x00,0x00,0x00,0x20,0x10,0x08,0x00,
  0x0C,0x00,0x00,0x00,0x20,0x20,0x04,0x00,
  0x08,0x00,0x00,0x00,0x00,0x20,0x02,0x00,
  0x08,0x00,0x00,0x00,0x00,0x60,0x01,0x00,
  0x08,0x00,0x00,0x00,0x00,0x60,0x01,0x00,
  0x08,0x00,0x00,0x00,0x00,0x20,0x00,0x80,
  0x08,0x00,0x00,0x00,0x40,0x20,0x00,0xC0,
  0x08,0x00,0x00,0x00,0xC0,0x20,0x00,0x40,
  0x0C,0x00,0x00,0x03,0xC0,0x10,0x00,0x40,
  0x06,0x00,0x00,0x1F,0xC0,0x10,0x00,0x60,
  0x07,0x80,0x00,0x1F,0xC0,0x08,0x00,0x60,
  0x0E,0x00,0x00,0x00,0x00,0x04,0x00,0x40,
  0x10,0x00,0x00,0x00,0x00,0x02,0x00,0x60,
  0x10,0x00,0x00,0x00,0x00,0x03,0x00,0x90,
  0x30,0x00,0x00,0x00,0x00,0x01,0x83,0x08,
  0x20,0x00,0x00,0x00,0x00,0x00,0xFE,0x08,
  0x20,0x00,0x00,0x00,0x00,0x00,0x18,0x08,
  0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,
  0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,
  0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
  0x30,0x00,0x00,0x00,0x00,0x00,0xF8,0x08,
  0x10,0x00,0x00,0x00,0x00,0x01,0x86,0x08,
  0x18,0x00,0x00,0x00,0x00,0x02,0x01,0x10,
  0x0F,0xFC,0x00,0x1F,0xE0,0x00,0x00,0xE0,
  0x0

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值