Ⅰ c语言怎么画圆
#include <math.h>#include <stdio.h>#define R 10 //半径 #define X 10 //圆心x坐标 #define Y 10 //圆心Y坐标 int main(void)
{ int x,y; int m; int i; for(i=Y-R;i>=1;i--)
{ printf("
");
}
for(y=R;y>=-R;y--)
{
m=2*sqrt(R*R - y*y); //横坐标的偏移量,因为字体长宽比例为2,所以要乘2
for(x=1;x<X+R-m;x++) //打印左半圆
{ printf(" ");
} printf("*"); for(;x<X+R+m;x++) //打印右半圆
{ printf(" ");
} printf("*
");
}
}
Ⅱ 怎么用c语言画出一个随时间变化的圆形
circle函数是TURBO C提供的图形接口,用来画圆。不属于标准库函数,不具备可移植性。
函数名:circle
功 能: 在给定半径以(x, y)为圆心画圆
用 法:void far circle(int x, int y, int radius)随时间变化,可以携此用cleardevice函数清除屏幕,不断画半径不同的圆。看起来就像是一个随时间变化的圆形。
函数名: cleardevice
功 能: 清除图形屏幕
用 法: void far cleardevice(void);
例程:#include<graphics.h>
#include<stdlib.h>指改
#include<stdio.h>
#include<conio.h>
intmain(void)
{
/*requestautodetection*/
intgdriver=DETECT,gmode,errorcode;
intmidx,midy;
intradius=100;
/**/
initgraph(&gdriver,&gmode,"");
/*readresultofinitialization*/
errorcode=graphresult();
if(errorcode!=grOk)/*anerroroccurred*/
{
printf("Graphicserror:%s ",grapherrormsg(errorcode));
printf("Pressanykeytohalt:");
getch();
exit(1);/*terminatewithanerrorcode*/
}
midx=getmaxx()/2;
midy=getmaxy()/2;
setcolor(getmaxcolor());
for(i=0;i<1000000;i++)if(i%50000==0){
辩逗迅cleardevice();/*cleanthescreen*/
circle(midx,midy,radius--);/*drawthecircle*/
}
getch();
closegraph();
return0;
}
Ⅲ C语言 给一个圆形填充颜色
第一floodfill第三个颜色参数一定要和被填充图画时的颜色一样.
第二,X,Y 一定要在被填充的图形内,边界上也是不行的,那样填充的是图形外的部分,如你上题,因是圆形,可改为
setcolor(1);
circle(200,200,100);
floodfill(200,200,1);
但如是长方形或正方形就一定要在边界之内,就是多一个像素都行
Ⅳ 求教,用c语言,循环语句输出一个五角星,带运行图。
提供示例代码供参考:
#include<stdio.h>
voidmain()
{
inti1,j1,k1,i2,j2,k2,i3,j3,k3,i4,j4,k4,m4,n4;
printf(" ");
for(i1=1;i1<6;i1++)/*这是五角星的上面一个角*/
{
for(j1=1;j1<19-i1;j1++)
printf("");
for(k1=1;k1<=2*i1-1;k1++)
printf("*");
printf(" ");
}
for(i2=1;i2<5;i2++)/*这是五角星的中间两个角*/
{
for(j2=1;j2<3*i2-3;j2++)
printf("");
for(k2=1;k2<=42-6*i2;k2++)
printf("*");
printf(" ");
}
for(i3=1;i3<3;i3++)/*这是中间与下部相接的部分*/
{
for(j3=1;j3<12-i3;j3++)
printf("");
for(k3=1;k3<=12+2*i3;k3++)
printf("*");
printf(" ");
}
for(i4=1;i4<5;i4++)/*这是五角星的下面两个角*/
{
for(j4=1;j4<10-i4;j4++)
printf("");
for(k4=1;k4<=10-2*i4;k4++)
printf("*");
for(m4=1;m4<6*i4-3;m4++)
printf("");
for(n4=1;n4<=10-2*i4;n4++)
printf("*");
printf(" ");
}
printf(" ");
}
运行截图:
Ⅳ C语言中关于画圆程序
#include<stdio.h>
#include<math.h>
main()
{
double y;
int x,m;
for(y=10;y>=-10;y--) //表示图形的第y行,通过for循环打印所有行
{
m=2.5*sqrt(100-y*y); //用y作为自变量,根据弦长与纵坐标y的函数关系计算出此行上的弦 长的一半也就是两个星形符号之间的距离的一半,并用m表示。
for(x=1;x<50-m;x++) //以50个字符长度为基准根据弦长来确定每行左数第一个星形的位 置,此位置前全印空格
printf(" ");
printf("*");
for(;x<50+m;x++) //以50个字符宽度为基准来确定每行第二个星形的位置
printf(" ");
printf("*\n");
}
}
//此程序打印的只是个大概的圆形,因为运行输出窗口里,相邻的行距和邻字符的列距是不相等的,所以语句 m=2.5*sqrt(100-y*y);中的2.5是用来修正此误差的。可根据具体运行平台适当修改。 如果还看不懂,再问
Ⅵ 怎样用C语言画圆
#include <windows.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
char arg[50]={0};
arg[0]= '\ " ';
strcpy(arg+1,argv[0]);
int len=int(strlen(arg));
arg[len]= '\ " ';
HWND hWnd=FindWindow(NULL,arg); //找到程序运行窗口的句柄
HDC hDC=GetDC(hWnd);//通过窗口句柄得到该窗口的设备场境句柄
HPEN hPen,hOldPen; //画笔
int i=0;
for(;i <500;++i)
SetPixel(hDC,10+i,10+i,0x0000ff);//用画点的办法画一根线,最后一个参数是颜色(32位)
hPen=CreatePen(PS_SOLID,2,0x00ff00);//生成绿色画笔
hOldPen=(HPEN)SelectObject(hDC,hPen);//把画笔引入设备场境
MoveToEx(hDC,20,50,NULL); //设置画线起点
LineTo(hDC,520,550); //画到终点
Arc(hDC,100,100,300,300,350,500,350,500);//画圆
SelectObject(hDC,hOldPen);
ReleaseDC(hWnd,hDC);
//下面是对比,表明它确实是控制台程序
printf( "hello console ");
system( "pause ");
return 0;
}