重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
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);
}
===================================
只能在console下画,这有意义么?为什么不用MFC的LineTo,MoveTo呢
根据你的编译器的绘图函数.
有的有绘
rect
函数,
(参数,4个角点坐标.
或一个角点坐标和长宽值).
那你用循环语句依次画长宽相等的矩型.
如果只有画直线函数.
那你用循环语句依次调
MoveTo,
LineTo
按
角点坐标
画直线.
void far bar3d(int x1, int y1, int x2, int y2,int depth,int topflag);当
topflag为非0时, 画出一个三维的长方体。当topflag为0时,三维图形不封顶,
实际上很少这样使用。
void far setfillstyle(int pattern, int color); color的值是当前屏幕图形
模式时颜色的有效值,SOLID_FILL 1 以实填充
void far floodfill(int x, int y, int border);
其中:x, y为封闭图形内的任意一border为边界的颜色,也就是封闭图形轮廓的
颜色。调用了该函数后,将用规定的颜色和图模填满整个封闭图形。
#includestdlib.h
#includegraphics.h
main()
{
int gdriver, gmode;
struct fillsettingstype save;
gdriver=DETECT;
initgraph(gdriver, gmode, "");
setbkcolor(BLUE);
cleardevice();
setcolor(LIGHTRED);
setlinestyle(0,0,3);
setfillstyle(1,14); /*设置填充方式*/
bar3d(100,200,400,350,200,1); /*画长方体并填充*/
floodfill(450,300,LIGHTRED);
/*填充长方体另外两个面*/
floodfill(250,150, LIGHTRED);
getch();
closegraph();
}
rectangle() 画矩形函数
功能: 函数rectangle() 用当前绘图色、线型及线宽,画一个给定左上角与右下角的矩形(正方形或长方形)。
用法: 此函数调用方式为void rectangle(int left,int top,int right,int bottom);
说明: 参数left,top是左上角点坐标,right,bottom是右下角点坐标。如果有一个以上角点不在当前图形视口内,且裁剪标志clip设置的是真(1),那么调用该函数后,只有在图形视口内的矩形部分才被画出。
这个函数对应的头文件为graphics.h
返回值: 无
例: 下面的程序画一些矩形实例:
#includegraphics.h
void main()
{
int driver,mode;
driver=DETECT;
mode=0;
initgrpah(driver,mode,"");
rectangle(80,80,220,200);
rectangle(140,99,180,300);
rectangle(6,6,88,88);
rectangle(168,72,260,360);
getch();
restorecrtmode();
}
可以用简单的输出语句printf实现:
#include stdio.h
main()
{ printf("*****\n"); /*后面的\n表示换行,不能少了*/
printf("* *\n"); /*星号与星号之间有3个空格*/
printf("* *\n");
printf("* *\n");
printf("*****\n");
}
你也可以用循环和选择结合起来一起做:
#includestdio.h
main()
{ int i,j; /*变量i和j分别用来控制正方形输出的行数我列数*/
for(i=1;i=5;i++)
{ for(j=1;j=5;j++)
{ if(i==1||i==5) /*第一行和第五行输出连续的5个*号*/
printf("*");
else {if(j==1||j==5)/*其它行只在第一列和第五列输出*号*/
printf("*");
else printf(" ");/*否则其它行中间都是空格*/
}
}
printf("\n"); /*每输出一行换行*/
}
}
用TC画图应该不会出现上述问题吧,用graphics.h函数画图的基本思想就是利用putpixel(x,y,color)函数画点,形成图形,你再试试看吧!