(一)
创新互联建站是一家集网站建设,垦利企业网站建设,垦利品牌网站建设,网站定制,垦利网站建设报价,网络营销,网络优化,垦利网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
像素函数
1.
putpiel()
画像素点函数
2.
getpixel()返回像素色函数
(二)
直线和线型函数
1.
line()
画线函数
2.
lineto()
画线函数
3.
linerel()
相对画线函数
4.
setlinestyle()
设置线型函数
4.
getlinesettings()
获取线型设置函数
5.
setwritemode()
设置画线模式函数
(三)多边形函数
1rectangle()
画矩形函数
2bar()
画条函数
3 bar3d()
画条块函数
4drawpoly()
画多边形函数
(四)
圆、弧和曲线函数
1getaspectratio()获取纵横比函数
2circle()画圆函数
3 arc()
画圆弧函数
4ellipse()画椭圆弧函数
5fillellipse()
画椭圆区函数
6pieslice()
画扇区函数
7sector()
画椭圆扇区函数
列举不完,
建议去网站下载c函数大全。
II、设定线型函数
在没有对线的特性进行设定之前,TURBO C 用其默认值,即一点宽的实线,但TURBO C 也提供了可以改变线型的函数。
线型包括:宽度和形状。其中宽度只有两种选择:一点宽和三点宽。而线的形状则有五种。
下面介绍有关线型的设置函数。
void far setlinestyle(int linestyle,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;
}
例如下面两句程序可以读出当前线的特性
struct linesettingstype *info;
getlinesettings(info);
void far setwritemode(int mode);该函数规定画线的方式。如果mode=0,则表示画线时将所画位置的原来信息覆盖了(这是TURBO C的默认方式)。如果mode=1, 则表示画线时用现在特性的线与所画之处原有的线进行异或(XOR)操作, 实际上画出的线是原有线与现在规定的线进行异或后的结果。因此,当线的特性不变,进行两次画线操作相当于没有画线。
有关线型设定和画线函数的例子如下所示。
#includestdlib.h
#includegraphics.h
int main()
{
int gdriver, gmode, i;
gdriver=DETECT;
initgraph(gdriver, gmode, "c:\\caic\\bgi");
setbkcolor(BLUE);
cleardevice();
setcolor(GREEN);
circle(320, 240, 98);
setlinestyle(0, 0, 3); /*设置三点宽实线*/
setcolor(2);
rectangle(220, 140, 420, 340);
setcolor(WHITE);
setlinestyle(4, 0xaaaa, 1);
/*设置一点宽用户定义线*/
line(220, 240, 420, 240);
line(320, 140, 320, 340);
getch();
closegraph();
return 0;
}
与图形有关的函数
GRAPHICS.H 库文件
bar
【功能】画出一条栏目。
【原型】void far bar(int left,int top,int right,int bottom)
【位置】graphics.hgraphics.h
【参见】bar3d,setfillstyle,rectangle
bar3d
【功能】画出一条3-D栏目。
【原型】void far bar3d(int left,int top,int right,int bottom,int depth,int topflag)
【位置】graphics.h
【参见】bar
circle
【功能】以(x,y)为圆心按照指定的半径画出一个圆。
【原型】void far circle(int x,int y,int radius)
【位置】graphics.h
【参见】arc
cleardevice
【功能】清除图形画面。
【原型】void far cleardevice(void)
【位置】graphics.h
【参见】clearviewport
clearviewport
【功能】清除当前可视区域。
【原型】clearviewport(void)
【位置】graphics.h
【参见】setviewport,cleardevice
closegraph
【功能】关闭图形系统。
【原型】void far closegraph(void)
【位置】graphics.h
【参见】initgraph
detecgraph
【功能】通过检查硬件确定使用的图形驱动程序和模式。
【原型】void far detectgraph(int far *graphdriver,int far *graphmode)
【位置】graphics.h
【参见】initgraph,graphresult
drawpoly
【功能】画出一个多边形的轮廓。
【原型】void far drawpoly(int numpoints,int far polypoints[])
【位置】graphics.h
【说明】polypoints中包括一共numpoints对数值。其中每一对都给出了多边形中一个顶点的x和y值。
【参见】fillpoly
ellipse
【功能】画出一条椭圆形的圆弧。
【原型】void far ellipse(int x,int y,int stangle,int endangle,int xradius,int yradius)
【位置】graphics.h
【说明】中心点在(x,y),stangle和endangle表示一角度为单位的起始角和终止角。Xradius和yradius表示水平轴和垂直轴。
【参见】arc,circle,fillellipse
fillellipose
【功能】画出椭圆形圆弧,并填充。
【原型】void far fillllipse(int x,int y,int xradius,int yradius)
【位置】graphics.h
【说明】使用(x,y)作为中心点,然后使用当前的填充模式填充圆弧。Xradius和yradius表示水平轴和垂直轴。
【参见】arc,circle,ellipse,pieslice
fillpoly
【功能】画出一个多边形,并填充。
【原型】void far fillpoly(int numpoints,int far polypoints[])
【位置】graphics.h
【说明】polypoints中包含有numpoints对数值。其中每一对给出了多边形一个顶点的x值和y值。
【参见】drawpoly,fill_patterns,floodfill,graphresult,setfillstyle
floodfill
【功能】填充一个有界区域范围。
【原型】void far floodfill(int x,int y,int border)
【位置】graphics.h
【参见】drawpoly,fillpoly,fill_patterns,graphresult,setfillstyle
getarccoords
【功能】得到最后一次调用arc的坐标值。
【原型】void far getaerccoords(struct arccoordstype far *arccoords)
【位置】graphics.h
【参见】arc
getaspectratio
【功能】得到当前图形模式的纵横比。
【原型】void far getaspectratio(int far *xasp,int far *yasp)
【位置】graphics.h
【说明】are及类似函数使用纵横比令圆圈更加圆,而不会像椭圆。Yasp应当为10000。当象素为VGA平方并且10000时,xasp使用10000数值。
【参见】arc,setaspectratio
getbkcolor
【功能】返回当前背景颜色。
【原型】int far getbkcolor(void)
【位置】graphics.h
【参见】setbkcolor,getcolor,getpalette
getcolor
【功能】返回当前画笔的颜色。
【原型】int far getcolor(void)
【位置】graphics.h
【参见】getbkcolor,setcolor,getmaxcolor,getpalette
getdefaultpalette
【功能】返回调色板定义结构。
【原型】struct palettetype *far getdefaultpalette(void)
【位置】graphics.h
【说明】返回一个指针,指向调用initgraph初始化时,当前驱动程序的默认调色板结构。
【参见】getpalette,initgraph
getdrivername
【功能】返回一个指针,指向当前图形驱动程序的名称。
【原型】char *far getdrivername(void)
【位置】graphics.h
【说明】返回的指针指向标识当前驱动器程序的字符串,从而可以探测到硬件适配器。
【参见】initgraph
getfillpattern
【功能】将用户定义的填充模式复制到内存中。
【原型】void far getfillpattern(char far *pattern)
【位置】graphics.h
【参见】getfillsettings,setfillpattern,fill_patterns
getfillsettings
【功能】得到当前填充模式及其颜色的有关信息。
【原型】void far getfillsettings(struct fillsettingstype far *fillinfo)
【位置】graphics.h
【参见】floodfill, fillpoly, setfillstyple, pieslice, setfillpattern, bar3d, bar, getfillpattern
getgraphmode
【功能】返回当前图形模式。
【原型】int far getgraphmode(void)
【位置】graphics.h
【说明】必须先调用initgraph或者setgraphmode。
【参见】setmoderange,restorectrtmode
getimage
【功能】将制定区域的位图保存到内存中。
【原型】void far getimage(int left,int top,int right,int bottom,void far *bitmap)
【位置】graphics.h
【参见】imagesize,putimage
因为太多了,无法一一列出。比如下面的:
putimage
putpixel
rectangle
registerbgidriver
registerbgifont
restorecrtmode
sector
setactivepage
setallpalette
setaspectratio
setbkcolor
setcolor
setfillpattern
setfillstyle
setgraphbufsize
setgraphmode
setlinestyle
setpalette
setrgbcolor
setrgbpalette
settextjustify
settextstyle
setusercharsize
setviewport
setvisualpage
setwritemode
textheight
textwidth
建议你买本专业的书籍学习查看。
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");
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款