C语言如何画图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言如何画图相关的知识,希望对你有一定的参考价值。

画一个图形
最好是写出来代码,我要全部的代码~

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");

参考技术A C语言画图有专门的一个子集函数,进入图像状态就可以利用这些函数来画“点”,“线”,“圆”,“矩形”,“椭圆”等等基本图像,利用这些基本图像可以实现一个复杂图形的绘制。例如:
#i nclude<graphics.h>
void main()
int driver,mode; driver=DETECT; mode=0; //定义变量
initgraph(&driver,&mode,""); setcolor(15); //初始化,进入图形状态
line(66,66,88,88); //画线,坐标为:(66,66)-(88,88)
lineto(100,100); //画线,坐标为:(88,88)-(100,100)
linerel(36,64); //画线,坐标为(100,100)-(136,164)
getch(); //等待按键
restorecrtmode(); //恢复到文本状态
参考技术B c语言是函数语言,所以画图也离不开各种图形函数:下面举几个简单的例子:
=======================================
1./*学用circle画圆形*/
#include "graphics.h"
main()
int driver,mode,i;
float j=1,k=1;
driver=VGA;mode=VGAHI;
initgraph(&driver,&mode,"");
setbkcolor(YELLOW);
for(i=0;i<=25;i++)

setcolor(8);
circle(310,250,k);
k=k+j;
j=j+0.3;

getch();

2.//line画直线
#include "graphics.h"
main()
int driver,mode,i;
float x0,y0,y1,x1;
float j=12,k;
driver=VGA;mode=VGAHI;
initgraph(&driver,&mode,"");
setbkcolor(GREEN);
x0=263;y0=263;y1=275;x1=275;
for(i=0;i<=18;i++)

setcolor(5);
line(x0,y0,x0,y1);
x0=x0-5;
y0=y0-5;
x1=x1+5;
y1=y1+5;
j=j+10;

x0=263;y1=275;y0=263;
for(i=0;i<=20;i++)

setcolor(5);
line(x0,y0,x0,y1);
x0=x0+5;
y0=y0+5;
y1=y1-5;

getch();

3.//用rectangle画方形
#include "graphics.h"
main()
int x0,y0,y1,x1,driver,mode,i;
driver=VGA;mode=VGAHI;
initgraph(&driver,&mode,"");
setbkcolor(YELLOW);
x0=263;y0=263;y1=275;x1=275;
for(i=0;i<=18;i++)

setcolor(1);
rectangle(x0,y0,x1,y1);
x0=x0-5;
y0=y0-5;
x1=x1+5;
y1=y1+5;

settextstyle(DEFAULT_FONT,HORIZ_DIR,2);
outtextxy(150,40,"How beautiful it is!");
line(130,60,480,60);
setcolor(2);
circle(269,269,137);

===================================
更多有关c语言图形方面的函数及用法请参考c语言图形学的相关知识。本回答被提问者采纳
参考技术C

    C语言中提供了库函数来画圆,函数名为circle

    函数的头文件为 #include<graphics.h>

    函数功能: circle()使用当前绘图色并以实线画一个完整的圆。

    用法:该函数调用方式为void circle(int x,int y,int radius);

    说明:参数x,y为圆心坐标,radius为圆半径,用像素个素表示。注意,调用circle()函数画圆时不用当前线型。


参考技术D 先要图像初始化:
int gd=DETECT,gm;
initgraph(&gd,&gm,"");
然后调用一些画图函数就好了,如line,circle等.

以上是关于C语言如何画图的主要内容,如果未能解决你的问题,请参考以下文章

c语言画图怎么画直方图?

C语言的画图(圆形动画)

R语言-画图

C语言画图理解堆栈溢出

c语言api函数

c语言运行结果如何截屏