C语言图形编程(三、绘图函数-02)7

fillellipse(getmaxx()/2,getaxy()/2,66,44);
getaspectratio(&xasp,&yasp);
fillellipse(R,R,R,R*(long)xasp/(long)yasp);
getch();
closegraph();
}

73. pieslice() 画扇区函数
功能: 函数pieslice()使用当前绘图色画一圆弧,并把弧两端与圆心分别连一直线段(即半径),然后用当前填图样和填充色进行填充,即得扇区。
用法: 这个函数调用方式为void pieslice(int x,int y,int startangle,int endangle,int radius);
说明: 函数pieslice()的操作类似于arc()函数(即同调用参数一样,只是函数名不同),因此调用此函数的详细说明参见函数arc()的相应内容。该函数对屏显纵横比能自动调节进行补偿。
pieslice()函数对应的头文件为graphics.h
返回值:无
例: 显示一个扇形图,每45度为一个不同的扇区:
#include
void main()
{
int driver,mode;
int i,start,end;
driver=DETECT;
mode=0;
initgraph(&driver,mode,"");
start=0;
end=45;
for(i=0;i<8;i++)
{
setfillstyle(SOLID_FILL,i);
pieslice(260,200,start,end,100);
start+=45;
end+=45;
}
getch();
restorecrtmode();
}


74. sector() 画椭圆扇区函数
功能: 函数sector()先用当前绘图色画椭圆扇形轮廓,然后用当前填充图样和填充色进行填充,即得椭圆扇区。
用法: 该函数调用方式为void sector(int x,int y,int startangle,int endangle,int xradius,int yradius);
说明: 参数x,y为椭圆中心坐标,startangle和endangle为起始角与终止角,xradius与yradius是水平轴半径和垂直轴半径即长短轴。当startangle为0,endangle为360度时,调用此函数可画得一个完整的椭圆区。角度增加方向为反时针方向。设定填充图样和填充色,用setfillstyle()或setfillpattern()函数,若画轮廓线或填充扇区出现错误,则graphresult()函数返回值-6。对屏显纵横比,sector()函数不能自动调节补偿。
返回值: 无
例: 画出两个椭圆扇区:
#include
#include
#define R 80
void main()
{
int driver,mode;
int xasp,yasp;
initgraph(&driver,&mode,"");
sector(getmaxx()/2,getmaxy()/2,0,656,R,R);
getaspectratio(&xasp,&yasp);
setctor(getmaxx()/2,getmaxy()/2,180,135,R,R*(long)xasp/(long)yasp);
getch();
closegraph();
}

75. getarccoords()获取圆弧坐标函数
功能: 函数getarccoords()将最后一次调用arc()或ellipse()画的圆弧或椭圆弧的起终点坐标和中心坐标填入arccoordstype型结构里,进而从该结构中获取这些坐标值。
用法: getarccoords()函数调用方式为void getarccoords(struct arccoordstype *coordsp);
说明: 调用此函数填写coordsp指向的结构,从而获得起终点坐标和中心坐标值。它们可用于画弦、半径以及其它与圆弧端点相连的直线等。pieslice()函数就要用到这些值。如果最后一次调

用的函数是circle(),那么getarccoords()将返回圆心坐标和起终点坐标即圆的位置。
arccoordstype型结构定义如下:
struct arccoordstype {
int x,y;
int xstart,ystart,xend,yend;
}

相关主题
相关文档
最新文档