500字范文,内容丰富有趣,生活中的好帮手!
500字范文 > 巧妙的实现点阵图形显示可视化编程(C语言)

巧妙的实现点阵图形显示可视化编程(C语言)

时间:2024-03-31 01:10:40

相关推荐

巧妙的实现点阵图形显示可视化编程(C语言)

本文将介绍一种巧妙的方法,让点阵图形编程更加直观。

下面以一个16*16的点阵图形为例:

常用的表示方法是定义一个数组(逐行扫描的方式),

比如第一行,用二进制表示为:0001000000001000 ,用十六进制表示为:0x1008 。如此类推,得到如下数组:

unsigned short pic[] = {

0x1008,

0x2814,

0x4422,

0x8241,

0x8181,

0x8001,

0x4002,

0x4002,

0x,

0x,

0x1008,

0x0810,

0x0420,

0x0240,

0x0180,

0x0000

};

这样的形式,非常不直观。你根本没法从这组数据里看出实际图形的模样。

请看以下方法:

这里有一个非常牛B的#define定义,使得代码数据看上去像是屏幕上的图形一样,十分直观。

#define X )*2+1

#define _ )*2

#define s ((((((((((((((((0 /* 用来构建16位宽的图形 */

有了这三个宏定义后,只需要“画”出所需要的图形,程序会自动帮你生成相应的十六进制数据。

上面的例子可以转变为:

unsigned short pic[] = {

s _ _ _ X _ _ _ _ _ _ _ _ X _ _ _ ,

s _ _ X _ X _ _ _ _ _ _ X _ X _ _ ,

s _ X _ _ _ X _ _ _ _ X _ _ _ X _ ,

s X _ _ _ _ _ X _ _ X _ _ _ _ _ X ,

s X _ _ _ _ _ _ X X _ _ _ _ _ _ X ,

s X _ _ _ _ _ _ _ _ _ _ _ _ _ _ X ,

s _ X _ _ _ _ _ _ _ _ _ _ _ _ X _ ,

s _ X _ _ _ _ _ _ _ _ _ _ _ _ X _ ,

s _ _ X _ _ _ _ _ _ _ _ _ _ X _ _ ,

s _ _ X _ _ _ _ _ _ _ _ _ _ X _ _ ,

s _ _ _ X _ _ _ _ _ _ _ _ X _ _ _ ,

s _ _ _ _ X _ _ _ _ _ _ X _ _ _ _ ,

s _ _ _ _ _ X _ _ _ _ X _ _ _ _ _ ,

s _ _ _ _ _ _ X _ _ X _ _ _ _ _ _ ,

s _ _ _ _ _ _ _ X X _ _ _ _ _ _ _ ,

s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

};

程序会自动解析 "s" "_" "X" 这三个宏定义,最终得到你想要的十六进制数。

拿第一行来做个解释说明:

s _ _ _ X _ _ _ _ _ _ _ _ X _ _ _ 用相应的宏定义替代后,变成如下的形式:

((((((((((((((((0)*2)*2)*2)*2+1)*2)*2)*2)*2)*2)*2)*2)*2)*2+1)*2)*2)*2 =0x1008

其他的行也是同样的道理。以此类推,就可以得到你想要的数啦。

显然,与前面的代码相比,它的意义更为明显。

特别注意:

程序绘制完图像之后,记得取消这里的三个#define(使用#undef来取消定义),否则将会影响后面程序的运行。

#undef X

#undef _

#undef s

当然,你也可以定义其他的符号,这样代码上会有不一样的显示效果。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。