c语言绘图功能

我画了半个正弦函数,剩下的你可以跟着画。欢迎讨论。

#包含“stdio.h”

#包含“conio.h”

#包含“math.h”

#包含“graphics.h”

void main()

{

int驱动程序,mode,I;

驱动=检测;

模式= 0;

initgraph(驱动程序,模式," ");

set color(15);

for(I = 0;i360我)

line(i,200*sin(i*3.14/360),i 1,200 * sin((I 1)* 3.14/360));

getch();

restorrectmode();

}

C语言有自己的绘图函数库吗,如何应用? 是的,你可以使用graphics.h头文件来调用标准的C函数。

但是

用16位C编译器画图是中断调用。

turboc的图形库封装了中断调用,但支持的最大分辨率只有640*480。

不支持SVGA。

支持SVGA的高分辨率绘图是通过调用中断10h的4f函数实现的。

主分辨率设置代码

无符号字符集_SVGA_mode(int vmode)

联合规则r;

r . x . ax = 0x4f 02;

r . x . bx = vmode;

int86(0x10,r,r);

return(r . h . ah);

}

void隐藏_文本_光标(void)

联合规则r;

r . h . ah = 1;

r . h . ch = 32;

int86(0x10,r,r);

}

void selectpage(注册char页)

联合规则r;

r . x . ax = 0x4f 05;

r . x . bx = 0;

r . x . dx = page;

int86(0x10,r,r);

}

void show_text_cursor(字符大小)

联合规则r;

r . h . ah = 1;

r . h . cl =尺寸;

r . h . ch = 7;

int86(0x10,r,r);

}

无符号整数get_SVGA_mode()

联合规则r;

r . x . ax = 0x4f 03;

int86(0x10,r,r);

return(r . x . bx);

}

这可以在所有16位C编译器中使用,但略有不同。

如何用C语言画图 帧缓冲区(帧缓冲区)。

最小帧数24(肉眼可见)(24以下,画面不流畅)。

显卡与帧的关系:cpu调整其数据传输速率,输出其三原色的比例。

三原色:RGB(红绿蓝)。

在没有桌面和图形文件的系统界面中,用C语言编程可以在黑色背景上绘图!

使用下面的代码,在需要的地方修改一下(带注释),就可以画出自己喜欢的图形了!

PS:还需要编译运行才能产生效果。

#包含stdio.h

#include sys/mman.h

#包含fcntl.h

#包含linux/fb.h

#包含stdlib.h

#定义RGB888(r,g,b)((r 0x ff)16 |(g 0x ff)8 |(b 0x ff))

#定义RGB565(r,g,b)((r 0x1f)11 |(g 0x3f)5 |(b 0x1f))

int main()

{

int fd = open("/dev/fb0 ",O _ RDWR);

if(fd 0){

perror("open err。\ n ");

退出(EXIT _ FAILURE);

printf("xres: %d\n ",info . xres);

printf("yres: %d\n ",info . yres);

printf("每像素位数:%d\n ",info . bits _ per _ pixel);

size _ t len = info . xres * info . yres * info . bits _ per _ pixel 3;

无符号long * addr = NULL

addr = mmap(NULL,len,PROT_WRITE|PROT_READ,MAP_SHARED,fd,0);

if(addr == (void*)-1){

perror("mmap err。\ n ");

相关文章

发表新评论