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 ");
最后更新于 2023-10-10 16:15:55 并被添加「」标签,已有 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处
相关文章