请输入您要查询的百科知识:

 

词条 putimage
释义

C语言图形函数,包含在头文件graphics.h

函数名: putimage

功 能: 在屏幕上输出一个位图

用 法: void far putimage(int x, int y, void far *bitmap, int op);注释:x,y表示屏幕上以(x,y)左上角的区域,int op可以是:复制、OR、AND、XOR、NOT等,分别进行或、与、异或、非等运算

程序例:

#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>

#define ARROW_SIZE 10

void draw_arrow(int x, int y);

int main(void)

{

/* request autodetection */

int gdriver = DETECT, gmode, errorcode;

void *arrow;

int x, y, maxx;

unsigned int size;

/* initialize graphics and local variables */

initgraph(&gdriver, &gmode, "");

/* read result of initialization */

errorcode = graphresult();

if (errorcode != grOk) /* an error occurred */

{

printf("Graphics error: %s\", grapherrormsg(errorcode));

printf("Press any key to halt:");

getch();

exit(1); /* terminate with an error code */

}

maxx = getmaxx();

x = 0;

y = getmaxy() / 2;

/* draw the image to be grabbed */

draw_arrow(x, y);

/* calculate the size of the image */

size = imagesize(x, y-ARROW_SIZE, x+(4*ARROW_SIZE), y+ARROW_SIZE);

/* allocate memory to hold the image */

arrow = malloc(size);

/* grab the image */

getimage(x, y-ARROW_SIZE, x+(4*ARROW_SIZE), y+ARROW_SIZE, arrow);

/* repeat until a key is pressed */

while (!kbhit())

{

/* erase old image */

putimage(x, y-ARROW_SIZE, arrow, XOR_PUT);

x += ARROW_SIZE;

if (x >= maxx)

x = 0;

/* plot new image */

putimage(x, y-ARROW_SIZE, arrow, XOR_PUT);

}

/* clean up */

free(arrow);

closegraph();

return 0;

}

void draw_arrow(int x, int y)

{

/* draw an arrow on the screen */

moveto(x, y);

linerel(4*ARROW_SIZE, 0);

linerel(-2*ARROW_SIZE, -1*ARROW_SIZE);

linerel(0, 2*ARROW_SIZE);

linerel(2*ARROW_SIZE, -1*ARROW_SIZE);

}

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/2/27 10:32:27