① 怎么用c语言画一个圆形急~
#include<stdio.h>
#include<math.h>
int main()
{
double y;
int x,m;
for(y=10;y>=-10;y–)
{
m=2.5*sqrt(100-y*y); /*计算行y对应的列坐标m,2.5是屏幕纵横比调节系数因为屏幕的
行距大于列距,不进行调节显示出来的将是椭圆*/
for(x=1;x<30-m;x++) printf(" "); /*图形左侧空白控制*/
printf("*"); /*圆的左侧*/
for(;x<30+m;x++) printf(" "); /*图形的空心部分控制*/
printf("*\n"); /*圆的右侧*/
}
return 0;
}
② 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语言画一个圆可以访问graphics.h库!circle函数怎样用
graphics.h 是 tc 下的,vc 下你安装了 easyx 也就有了,然后画圆这样:
#include <graphics.h> // 引用图形库
#include <conio.h>
void main()
{
initgraph(640, 480); // 初始化图形窗口
circle(100, 100, 60); // 画圆,圆心(100, 100),半径 60
getch(); // 按任意键继续
closegraph(); // 关闭图形界面
}
④ c语言画圆
stdio.h是基本输入输出函数库,不包括图形库,不能画图。
若要画圆作图,需要包含graphics.h图形函数库,并调用函数circle()来完成。
⑤ 用C语言写出画一个圆形的代码
可以参考下面的代码:
#include<math.h>
main()
{
double y;
int x,m;
for(y=10;y>=-10;y--)
{
m=2.5*sqrt(100-y*y);
for(x=1;x<50-m;x++)
printf(" ");
printf("*");
for(;x<50+m;x++)
printf(" ");
printf("* ");
}
}
(5)c语言画圆面扩展阅读:
for循表达式为:for(单次表达式;条件表达式;末尾循环体){中间循环体;}。
其中,表示式皆可以省略,但分号不可省略,因为“;”可以代表一个空语句,省略了之后语句减少,即为语句格式发生变化,则编译器不能识别而无法进行编译。for循环小括号里第一个“;”号前为一个为不参与循环的单次表达式。
⑥ 怎样用C语言画个圆
如果用tc,有自己的绘图函数
用vc也有自己的画图方式
⑦ c语言的画圆代码
假设圆心点是(x0,y0),半径是r
for(x=x0-r;x<=x0+r;x+=o.1)
for(y=y0-r;x<=y0+r;y+=o.1)
line(x,y,x0,y0);
⑧ 怎么用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语言画圆
#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;
}
⑩ 求:C语言,圆的画法!
圆弧的扫描转换算法
(1)圆的特征
圆被定义为到给定中心位置(xc,yc)距离为r的点集。圆心位于原点的圆有四条对称轴x=0,y=0,x=y和x=-y。若已知圆弧上一点(x,y),可以得到其关于四条对称轴的其它7个点,这种性质称为圆的八对称性。因此,只要扫描转换八分之一圆弧,就可以求出整个圆弧的象素集。
圆心在0,0点圆周生成时的对称变换(参见:P.26图3-4)
显示圆弧上的八个对称点的算法:
void CirclePoints(int x,int y,int color)
{
drawpixel(x,y,color); drawpixel(y,x,color);
drawpixel(-x,y,color); drawpixel(y,-x,color);
drawpixel(x,-y,color); drawpixel(-y,x,color);
drawpixel(-x,-y,color); drawpixel(-y,-x,color);
}
(2)中点画圆法(参见:P.29—P.30)
如果我们构造函数 F(x,y)=x2+y2-R2,则对于圆上的点有F(x,y)=0,对于圆外的点有F(x,y)>0,对于圆内的点F(x,y)<0 。与中点画线法一样,构造判别式:
d=F(M)=F(xp+1,yp-0.5)=(xp+1)2+(yp-0.5)2-R2
若 d<0,则应取P1为下一象素,而且再下一象素的判别式为:
d=F(xp+2,yp-0.5)=(xp+2)2+(yp-0.5)2-R2=d+2xp+3
若d≥0,则应取P2为下一象素,而且下一象素的判别式为
d=F(xp+2,yp-1.5)=(xp+2)2+(yp-1.5)2-R2=d+2(xp-yp)+5
我们这里讨论的第一个象素是(0,R),判别式d的初始值为:
d0=F(1,R-0.5)=1.25-R
图2.2.1 当前象素与下一象素的候选者
中点画圆算法:
MidPointCircle(int r int color)
{
int x,y;
float d;
x=0; y=r; d=1.25-r;
circlepoints (x,y,color);
while(x<=y)
{
if(d<0) d+=2*x+3;
else { d+=2*(x-y)+5; y--;}
x++;
circlepoints (x,y,color);
}
}
为了进一步提高算法的效率,可以将上面的算法中的浮点数改写成整数,将乘法运算改成加法运算,即仅用整数实现中点画圆法。
(3)例:半径为6,利用中点画圆法算法所画的点
(4)中点画圆法图示