最新新闻
我要投稿
联系电话:027-87592219/20/21转188
投稿邮箱:tb@e-works.net.cn
您所在的位置:首页 > 智库 > 智能装备

C语言实现可视化人机界面的有效方法

发布时间:2012-09-30 作者:李刚刚  来源:万方数据
C语言作为最主要的结构化程序设计语言,应用广泛,如何用C语言实现图像输出以及动画是要解决的问题。通过设置计算机的图形模式到建立独立的图形程序,说明C语言输出图像的过程;提出C语言实现简单动画的异或思路和具体方法。结合实例,给出了c语言实现可视化人机界面的过程和方法。

    # include < graphics. h>

    # include < stdlib. h>

    # include < stdio. h>

    # include < conio . h>

    int main( void)

    { int gdriver= DETECT, gmode;

    void * ball;

    int x, y, maxx ;

    unsigned int size;

    initgraph( & g driver, & gmode,) ;

    maxx= get maxx ( ) ;

    x= 0; y= 200;

    rectangle( x , y+ 11, x+ 20, y+ 31) ; / / 绘制矩形

    circle( x+ 10, y, 10) ; / / 绘制圆

    size= imagesize( x , y- 10, x+ 20, y+ 10) ;

    / / 计算保存区域大小

    ball= mallo c( size) ; / / 申请保护区域内存

    getimage( x , y- 10, x+ 20, y+ 10, ball) ;

    / / 保存圆所在的位置图形到内存

    while( ! kbhit( ) ) {

    putimage( x, y- 10, ball, XOR_PUT) ;

    / / 用异或方式在新位置绘制圆, 圆消失

    x+ = 10; / / 计算圆移动增量

    if ( x> = max x ) {

    x= 0;

    putimage( x, y- 10, ball, XOR_PUT) ;

    / / 用异或方式在新位置绘制圆, 圆出现

    delay( 1000) ; / / 延迟一定时间

    } }

    free(ball) ;

    closegraph( ) ;

    return 0;

    }

    该程序的运行情况, 和前面的例程的效果差不多。但从实际画点开销角度来看, 3 个圆球运行的例程是不一样的。

    本例程使用XOR 异或方法重画, 每次画点开销为:

    10* 4 点(重画圆形清除) + 10* 4 点(重画圆形) = 80 点

    由此可见,异或在这里是最好的绘制动画的选择。

3