当前位置:首页 » 编程语言 » 汽车c语言绘画
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

汽车c语言绘画

发布时间: 2023-05-21 02:10:59

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

⑵ c语言写画图程序

#include<stdio.h>
#include<graphics.h>
main()
{
int gm,gd=DETECT;
int a,T,X,R=100;
scanf("%d",&a);
T=200,
X=a*T;
initgraph(&gd,&gm,"");/*双引号戚悔卜内填bgi文件夹在你电脑中的目录,如在c:\tc\bgi,且c文件在高穗c:\tc\programfiles下,则填"..\\bgi"*/
circle(X,T,R);/前尺*R为半径*/
getch();
closegraph();
}

⑶ c语言如何画图

c语言画图 要选对 C语言编程工具。 目前最方便的是“习语言”,它能编译所有C代码,又能在C代码中使用它支持的绘图函数。
也可以使用二十年前的C语言编程工具来绘图,通常是在DOS窗口中绘图。

⑷ 如何用C语言画基本图形

下面举一个用drawpoly()函数画箭头的例子。#include
#include
int main()
{
int gdriver, gmode, i;
int arw[16]={200,102,300,102,300,107,330,<br/>100,300,93,300,98,200,98,200,102};
gdriver=DETECT;
initgraph(&gdriver, &gmode, "c:\\caic\\bgi");
setbkcolor(BLUE);
cleardevice();
setcolor(12); /*设置作图颜色*/
drawpoly(8, arw); /*画一箭头*/
getch();
closegraph();
return 0;
}
设定线型函数
在没有对线的特性进行设定之前,TURBO C 用其默认值,即一点宽的实线,但TURBO C 也提供了可以改变线型的函数。线型包括:宽度和形状。其中宽度只有两种选择:一点宽和三点宽。而线的形状则有五种。下面介绍有关线型的设置函数。
void far setlinestyle(intlinestyle,unsigned upattern,int thickness); 该函数用来设置线的有关信息,其中linestyle是线形状的规定,
见下表:
有关线的形状(linestyle)
━━━━━━━━━━━━━━━━━━━━━━━━━
符号常数 数值 含义
─────────────────────────
SOLID_LINE 0 实线
DOTTED_LINE 1 点线
CENTER_LINE 2 中心线
DASHED_LINE 3 点画线
USERBIT_LINE 4 用户定义线
━━━━━━━━━━━━━━━━━━━━━━━━━
有关线宽(thickness)
thickness是线的宽度,见下表。
━━━━━━━━━━━━━━━━━━━━━━━━━
符号常数 数值 含义
─────────────────────────
NORM_WIDTH 1 一点宽
THIC_WIDTH 3 三点宽
━━━━━━━━━━━━━━━━━━━━━━━━━
对于upattern,只有linestyle选USERBIT_LINE 时才有意义 (选其它线型,uppattern取0即可)。此进uppattern的16位二进制数的每一位代表一个象元,如果那位为1,则该象元打开,否则该象元关闭。 void far getlinesettings(struct linesettingstypefar *lineinfo);该函数将有关线的信息存放到由lineinfo 指向的结构中,表中linesettingstype的结构如下:
struct linesettingstype
{
int linestyle;
unsigned upattern;
int thickness;
}

⑸ 使用C语言编程画图

换账号再来回答,veket的小号。。。

.......用了ege图形库.........纯体力活.........

源代码....demo.cpp.....

/////////////////////////////////////////

// ege0.3.8

// MinGW g++3.4.2

// veket的小号

/////////////////////////////////////////

#include"graphics.h"

#include<stdio.h>

constintYLEN=50;

constintXLEN=40;

constintWIDTH=10*XLEN;

constintHEIGHT=2*YLEN;

constintXWIDTH=640;

constintYHEIGHT=480;

intmain()

{

intx1,y1,x2,y2,x,y;

charstrbuf[100];

inti;

setinitmode(0);

initgraph(XWIDTH,YHEIGHT);

setbkcolor(RGB(0xcc,0xcc,0xcc));

setfillstyle(RGB(0xff,0xff,0xff));

x2=x1=(getmaxx()-WIDTH)/2;

y1=(getmaxy()-2*HEIGHT-YLEN)/2;

y2=y1+HEIGHT+YLEN;

bar(x1,y1,x1+WIDTH,y1+2*YLEN);

setcolor(RGB(0x04,0x04,0x04));

rectangle(x1,y1,x1+WIDTH,y1+2*YLEN);

outtextxy(x1-20,y1-10,"1");

outtextxy(x1-20,y1-10+YLEN,"0");

outtextxy(x1-20,y1-10+2*YLEN,"-1");

for(x=x1,y=y1+2*YLEN+10,i=0;x<=x1+WIDTH;x+=2*XLEN,i+=2)

{

sprintf(strbuf,"%d",i);

outtextxy(x,y,strbuf);

}

for(x=x1;x<x1+(int)(3*PI*XLEN);x++)

{

y=y1+YLEN-(int)(YLEN*sin(1.0*(x-x1)/XLEN)+0.5);

putpixel(x,y,RGB(0x3e,0x3e,0xff));

}

bar(x2,y2,x2+WIDTH,y2+2*YLEN);

rectangle(x2,y2,x2+WIDTH,y2+2*YLEN);

outtextxy(x2-20,y2-10,"1");

outtextxy(x2-20,y2-10+YLEN,"0.5");

outtextxy(x2-20,y2-10+2*YLEN,"0");

for(x=x2,y=y2+2*YLEN+10,i=0;x<=x1+WIDTH;x+=2*XLEN,i+=2)

{

sprintf(strbuf,"%d",i);

outtextxy(x,y,strbuf);

}

for(x=x2;x<x2+(int)(PI*XLEN);x++)

{

y=y2+2*YLEN-(int)(2*YLEN*sin(1.0*(x-x1)/XLEN)+0.5);

putpixel(x,y,RGB(0x3e,0x3e,0xff));

}

for(x=x2+(int)(2*PI*XLEN);x<x2+(int)(3*PI*XLEN);x++)

{

y=y2+2*YLEN-(int)(2*YLEN*sin(1.0*(x-x1)/XLEN)+0.5);

putpixel(x,y,RGB(0x3e,0x3e,0xff));

}

getch();

closegraph();

return0;

}

⑹ 如何用C语言软件画图

matalab是我所知比较好的数学关系处理软件(当然简单一些的用excel就绰绰有余了),C语言软件中turbo-c显得就力不从心了,而且要进行比较复杂的编程语言转换,这个对于初学者太抽象了(命令式,可以类比于dos了··),如果你还是想借助c语言类软件的话,推荐用图形界面的软件,VB适于初学者,在之后可以选择学习VC(其中VC就已经足够强大了),另外要开发用于手机上的程式,就要学习java了··
(其他工具软件autoCAD也行,立体建模使用3d max 或者玛雅··)
以上仅供参考,希望对您有所帮助

⑺ 设计一个小汽车(或其他图案),使其从屏幕左边移动到右边并停止.C语言设计

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
int main()
{
char graphics[7][18]={
" ***** ",
" ******* ",
" *************** ",
"*****************",
" *** ***** *** ",
" ** ** "
};//存储小汽车的图案
int i,j,k;
for(i=0;i<30;i++) //控制小汽车运动的次数,如果无法跑到屏幕右端,可调大该数值
{
system("CLS");//清屏
for(j=0;j<7;j++)//输出小汽车图案
{
for(k=0;k<2*i;k++)
//i前2是下一次图案距离上次图案的空格数,用来表示小汽车每次运动的位移
//若要运动快点可以调整这个数值
printf(" ");
printf("%s\n",graphics[j]);
}
Sleep(200);//控制显示的频率,200表示睡眠200ms
}
return 0;
}
小汽车图案设计得不好,可自行调节,测试过可用,若有问题欢迎追问

⑻ 怎么样用c语言画赛车出来,谢谢啦,挺急的

两种思路橘嫌
一种 图形库, 根据位图信息 画赛车
第二种, 类宴派似于字符画的思维 用命令行圆祥手打印对应字符即可。
后者更简单。

⑼ 如何用c语言画图,举几个最简单的例子

首先需要绘图函数的头文件在TC2.0中是graphics.h
然后需要初始化图形模式.
在利用绘图函数
矩形:bar
圆形:circle
直线:line
等等。你可以到graphics.h文件中去看这些函数的参数
举个例子

#include <stdio.h>
#include <graphics.h>

int main(void)
{
int gdriver; /*图形驱动器*/
int gmode; /*图形驱动模式*/

gdriver = DETECT; /*自动检测硬件,已确定图形驱动器*/
initgraph(&gdriver,&gmode,\"\");初始化图形设备
setbkcolor(BLUE); /*设置屏幕背景颜色为蓝色*/
circle(getmaxx() / 2,getmaxy() / 2,100); /*在屏幕中间绘制一个半
为100的圆*/
closegraph(); /*关闭图形模式*/
return(0);
}

⑽ C语言如何画图

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语言图形学的相关知识。