用下面的代码 , 在需要的地方(有注释)适当修改,就能画出自己喜欢的图形!
PS:同样要编译运行后才能出效果 。
#include stdio.h
#include sys/mman.h
#include fcntl.h
#include linux/fb.h
#include stdlib.h
#defineRGB888(r,g,b)((r0xff) 16 | (g0xff)8 | (b0xff))
#defineRGB565(r,g,b)((r0x1f) 11 | (g0x3f)5 | (b0x1f))
int main()
{
int fd = open("/dev/fb0", O_RDWR);
if(fd0){
perror("open err. \n");
exit(EXIT_FAILURE);
printf("xres: %d\n", info.xres);
printf("yres: %d\n", info.yres);
printf("bits_per_pixel: %d\n", info.bits_per_pixel);
size_t len = info.xres*info.yres*info.bits_per_pixel3;
unsigned long* addr = NULL;
addr = mmap(NULL, len, PROT_WRITE|PROT_READ, MAP_SHARED, fd, 0);
if(addr == (void*)-1){
perror("mmap err. \n");
C语言有没有自带画图函数库,该怎么应用?有,你可以使用graphics.h 头文件调用标准C函数
不过
16位c编译器绘图,就是中断调用
turboc的图形库就是封装了中断调用,不过支持的分辨率最高只有640*480
并不支持SVGA
支持SVGA的高分辨率绘图通过调用中断 10h的4f功能来实现
主要分辨率设置代码
unsigned char set_SVGA_mode(int vmode)
{union REGS r;
r.x.ax=0x4f02;
r.x.bx=vmode;
int86(0x10,r,r);
return(r.h.ah);
}
void hide_text_cursor(void)
{union REGS r;
r.h.ah=1;
r.h.ch=32;
int86(0x10,r,r);
}
void selectpage(register char page)
{union REGS r;
r.x.ax=0x4f05;
r.x.bx=0;
r.x.dx=page;
int86(0x10,r,r);
}
void show_text_cursor(char size)
{union REGS r;
r.h.ah=1;
r.h.cl=size;
r.h.ch=7;
int86(0x10,r,r);
}
unsigned int get_SVGA_mode()
{union REGS r;
r.x.ax=0x4f03;
int86(0x10,r,r);
return(r.x.bx);
}
这个在所有16位C编译器里都可以使用,只是略有不同
关于c语言画图函数头文件和c语言绘图的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- linux解压解包命令,linux解压缩包命令
- 市场推广费收款如何入账,市场推广费怎么入账
- 微软飞行模拟游戏更新内容,微软飞行模拟2020百度百科
- 直播肉食话术,直播吃肉的是不是假的
- php显示找不到数据库 php找不到url
- 电视播放u盘怎么操作,电视播放u盘怎么操作手机
- GIS怎么做边界线,arcgis画出区域边界
- 角色扮演埃及猫的游戏,埃及猫女模组
- mysql满了怎么办 mysql满了怎样处理