当前位置:首页 » 编程语言 » C语言入门图

C语言入门图

发布时间: 2023-07-12 06:55:19

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

  • exit(EXIT_FAILURE);

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

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

printf("bits_per_pixel: %d ", 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. ");

2. C语言编程 图的创建与遍历

在C语言编程中,图的创建和遍历:

#include<stdio.h>

#define N 20

#define TRUE 1

#define FALSE 0

int visited[N];

typedef struct /*队列的定义*/

{

int data[N];

int front,rear;

}queue;

typedef struct /*图的邻接矩阵*/

{

int vexnum,arcnum;

char vexs[N];

int arcs[N][N];

}

graph;

void createGraph(graph *g); /*建立一个无向图的邻接矩阵*/

void dfs(int i,graph *g); /*从第i个顶点出发深度优先搜索*/

void tdfs(graph *g); /*深度优先搜索整个图*/

void bfs(int k,graph *g); /*从第k个顶点广度优先搜索*/

void tbfs(graph *g); /*广度优先搜索整个图*/

void init_visit(); /*初始化访问标识数组*/

void createGraph(graph *g) /*建立一个无向图的邻接矩阵*/

{ int i,j;

char v;

g->vexnum=0;

g->arcnum=0;

i=0;

printf("输入顶点序列(以#结束):

");

while((v=getchar())!='#')

{

g->vexs[i]=v; /*读入顶点信息*/

i++;

}

g->vexnum=i; /*顶点数目*/

for(i=0;i<g->vexnum;i++) /*邻接矩阵初始化*/

for(j=0;j<g->vexnum;j++)

g->arcs[i][j]=0;

printf("输入边的信息:

");

scanf("%d,%d",&i,&j); /*读入边i,j*/

while(i!=-1) /*读入i,j为-1时结束*/

{

g->arcs[i][j]=1;

g->arcs[j][i]=1;

scanf("%d,%d",&i,&j);

}

}

void dfs(int i,graph *g) /*从第i个顶点出发深度优先搜索*/

{

int j;

printf("%c",g->vexs[i]);

visited[i]=TRUE;

for(j=0;j<g->vexnum;j++)

if((g->arcs[i][j]==1)&&(!visited[j]))

dfs(j,g);

}

void tdfs(graph *g) /*深度优先搜索整个图*/

{

int i;

printf("

从顶点%C开始深度优先搜索序列:",g->vexs[0]);

for(i=0;i<g->vexnum;i++)

if(visited[i]!=TRUE)

dfs(i,g);

}

void bfs(int k,graph *g) /*从第k个顶点广度优先搜索*/

{

int i,j;

queue qlist,*q;

q=&qlist;

q->rear=0;

q->front=0;

printf("%c",g->vexs[k]);

visited[k]=TRUE;

q->data[q->rear]=k;

q->rear=(q->rear+1)%N;

while(q->rear!=q->front)

{

i=q->data[q->front];

q->front=(q->front+1)%N;

for(j=0;j<g->vexnum;j++)

if((g->arcs[i][j]==1)&&(!visited[j]))

{

printf("%c",g->vexs[j]);

visited[j]=TRUE;

q->data[q->rear]=j;

q->rear=(q->rear+1)%N;

}

}

}

void tbfs(graph *g) /*广度优先搜索整个图*/

{

int i;

printf("

从顶点%C开始广度优先搜索序列:",g->vexs[0]);

for(i=0;i<g->vexnum;i++)

if(visited[i]!=TRUE)

bfs(i,g);

printf("

");

}

void init_visit() /*初始化访问标识数组*/

{

int i;

for(i=0;i<N;i++)

visited[i]=FALSE;

}

int main()

{

graph ga;

int i,j;

createGraph(&ga);

printf("无向图的邻接矩阵:

");

for(i=0;i<ga.vexnum;i++)

{

for(j=0;j<ga.vexnum;j++)

printf("%3d",ga.arcs[i][j]);

printf("

");

}

init_visit();

tdfs(&ga);

init_visit();

tbfs(&ga);

return 0;

}

3. 怎么用c语言编程画出场图

在c++builder中绘制。
第一步:定义变量,利用C语言在头文件中将变量进行定义。具体的代码如下:privategraphics::tbitmap*bmp。
初始化:图象变量的初始化。具体的代码如下:bmp=newgraphics::tbitmap();bmp->loadfromfile("c:\\aboutlogo.bmp")。
编写代码:在paint的事件中进行相对应的操作。只需要编写以下的代码就可以了。
销毁对象:整个过程中最核心的一步,那就是将tbitmap对象销毁。

4. 用C语言画一简单电路图

void cb_line(int x1,int y1,int x2,int y2) /*draw a line*/
{
int dx,dy,n,k,i,f;
int x,y;
dx=abs(x2-x1);
dy=abs(y2-y1);
n=dx+dy;
if(x2>=x1)
{
k=y2>=y1?1:4;
x=x1;
y=y1; /* k stands for the slope of line*/
}
else
{
k=y2>=y1?2:4;
x=x1;
y=y1;
}

for(i=0,f=0;i<n;i++)
if(f>=0)
switch(k)
{
case 1:putpixel(x++,y,3);f-=dy;break;
case 2:putpixel(x,y++,3);f-=dx;break;
case 3:putpixel(x--,y,3);f-=dy;break;
case 4:putpixel(x,y--,3);f-=dx;break;
}
else
switch(k)
{
case 1:putpixel(x,y++,3);f+=dx;break;
case 2:putpixel(x--,y,3);f+=dy;break;
case 3:putpixel(x,y--,3);f+=dx;break;
case 4:putpixel(x++,y,3);f+=dy;break;
}
}

5. c语言的流程图怎么画

如果会编程序而不会画流程图,建议先把自己的程序研究一遍。
若是画主程序流程图,那就需看懂主函数的程序,按照main()函数中的具体书写过程来画,例如:
程序开始---定义变量---初始化变量---使用选择或者循环或者顺序结构---调用某一个子函数(可以没有)---程序结束
以上是最简单的程序流程图画法。
若你是画某一算法或是某一模块的流程图,就要把相应的算法或是模块看懂。分析算法或是模块的具体走法,根据此走法就可以画出对应的流程图。
如果你是初学者,想根据流程图的画法而去尝试编程,建议就一定要研究清楚每一个使用到的算法,读懂题目再开始编程。
下面是使VISO画流程图的几个要点:
1、选择下载一个合适版本的VISO
2、程序开始结束用胶囊
3、分页用圆圈
4、输入用平行四边形
5、语句用方块
6、判断用菱形
7、打印用波浪

热点内容
sift算法详解 发布:2025-02-08 18:35:23 浏览:577
linux标准错误的是 发布:2025-02-08 18:32:07 浏览:914
蛮多小说怎么缓存书架的小说 发布:2025-02-08 18:30:16 浏览:887
光遇花开脚本封号吗 发布:2025-02-08 18:23:15 浏览:534
怎么弄ld帐号和密码 发布:2025-02-08 18:11:42 浏览:627
新逍客20发动机压缩比 发布:2025-02-08 17:58:10 浏览:115
qq号和密码我都知道为什么登不上 发布:2025-02-08 17:52:21 浏览:872
宝塔服务器ip进不去 发布:2025-02-08 17:52:18 浏览:382
担保中介源码 发布:2025-02-08 17:14:37 浏览:413
手机存储卡速度测试 发布:2025-02-08 17:02:57 浏览:26