重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
framebuffer(帧缓冲)。
专注于为中小企业提供网站设计、成都网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业长寿免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
帧的最低数量为24(人肉眼可见)(低于24则感觉到画面不流畅)。
显卡与帧的关系:由cpu调节其数据传输速率来输出其三基色的配比。
三基色:RGB(红绿蓝)。
在没有桌面和图形文件的系统界面,可以通过C语言的编程来实现在黑色背景上画图!
用下面的代码,在需要的地方(有注释)适当修改,就能画出自己喜欢的图形!
PS:同样要编译运行后才能出效果。
#include stdio.h
#include sys/mman.h
#include fcntl.h
#include linux/fb.h
#include stdlib.h
#define RGB888(r,g,b) ((r 0xff) 16 | (g 0xff) 8 | (b 0xff))
#define 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(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_pixel 3;
unsigned long* addr = NULL;
addr = mmap(NULL, len, PROT_WRITE|PROT_READ, MAP_SHARED, fd, 0);
if(addr == (void*)-1){
perror("mmap err. \n");
首先,你输出的不是正弦图像,而是反正弦图像。
#includestdio.h
#includemath.h
int
main(){
double
y;
int
x,m,i;
printf("y=sin(x)
[0x2*pi]\n");
for(y=1;y=-1;y-=0.1){//表示y的取值范围是[-1,1]
if(y=0){
m=asin(y)*10;
//反正弦函数,确定空格的数量,最大值为15
for(x=1;xm;x++)printf("
");
//printf("*",m);
printf("*");//注意此时不换行,因为后面还有一个点
for(;x31-m;x++)printf("
");//输出第二个点,并换行
printf("*\n");}
else{//同理输出y小于0的点
m=-1*asin(y)*10;
for(i=0;i32;i++)printf("
");
for(x=1;xm;x++)printf("
");
//printf("*",m);
printf("*");
for(;x31-m;x++)printf("
");
printf("*\n",m);
}
}
getchar();
return
0;
}
不是非常理想,但马马虎虎吧。
#include graphics.h
#include stdlib.h
#include stdio.h
#include conio.h
#include time.h
int main(void)
{
int i,j;
int gdriver = DETECT, gmode, errorcode;
int maxx, maxy,maxc;
int xc,yc,rc,cc; /*circle*/
int xr,yr,wr,hr,cr; /*rectangle*/
int xt,yt,st,ct; /*text*/
char *c;
int dx=50,dy=40;
initgraph(gdriver, gmode, "");
errorcode = graphresult();
if (errorcode != grOk)
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1);
}
randomize();
maxx = getmaxx() ;
maxy = getmaxy();
maxc = getmaxcolor();
setcolor(maxc);
while(!kbhit())
{
cleardevice();
xc=dx+(maxx-2*dx-10)*1.0*rand()/RAND_MAX;
yc=dy+(maxy-2*dy-10)*1.0*rand()/RAND_MAX;
rc=dy*1.0*rand()/RAND_MAX;
cc=(maxc-1)*1.0*rand()/RAND_MAX;
setcolor(cc);
circle(xc,yc,rc);
setfillstyle(SOLID_FILL,cc);
floodfill(xc,yc,cc);
xr=dx+(maxx-2*dx-10)*1.0*rand()/RAND_MAX;
yr=dy+(maxy-2*dy-10)*1.0*rand()/RAND_MAX;
wr=dx*1.0*rand()/RAND_MAX;
hr=dy*1.0*rand()/RAND_MAX;
cr=(maxc-1)*1.0*rand()/RAND_MAX;
setcolor(cr);
rectangle(xr-wr/2,yr-hr/2,xr+wr/2,yr+hr/2);
setfillstyle(SOLID_FILL,cr);
floodfill(xr,yr,cr);
xt=dx+(maxx-2*dx-10)*1.0*rand()/RAND_MAX;
yt=dy+(maxy-2*dy-10)*1.0*rand()/RAND_MAX;
st=dy*1.0*rand()/RAND_MAX;
ct=(maxc-1)*1.0*rand()/RAND_MAX;
c[0]='A'+26.0*rand()/RAND_MAX;
c[1]='\0';
setcolor(ct);
settextjustify(LEFT_TEXT, TOP_TEXT);
settextstyle(DEFAULT_FONT,HORIZ_DIR,st);
outtextxy(xt,yt,c);
sleep(1);
}
getch();
closegraph();
return 0;
}