c语言的画圆代码
没有circle函数,只有line(x1,y1,x2,y2)函数(画一条x1,y1到x2,y2)的线,怎么画一个圆?函数要可以这么调用circle(x,y,r)...
没有circle函数,只有line(x1,y1,x2,y2)函数(画一条x1,y1到x2,y2)的线,怎么画一个圆?
函数要可以这么调用circle(x,y,r) 展开
函数要可以这么调用circle(x,y,r) 展开
2个回答
展开全部
#include <graphics.h>
#include <stdio.h>
#include <math.h>
#define TWOPI (3.1415926*2)
typedef struct point
{
int x;
int y;
}POINT;
void main()
{
int gd,gm;
POINT arr[1000];
int i;
int redius=80;
gd=DETECT;
initgraph(&gd,&gm,"C:\\JMSOFT\\DRV");
for(i=0;i<1000;i++)
{
arr[i].x=300+redius*sin(((1.0*i)/1000)*TWOPI);
arr[i].y=300+redius*cos(((1.0*i)/1000)*TWOPI);;
}
for(i=0;i<999;i++)
line(arr[i].x,arr[i].y,arr[i+1].x,arr[i+1].y);
getch();
closegraph();
}
#include <stdio.h>
#include <math.h>
#define TWOPI (3.1415926*2)
typedef struct point
{
int x;
int y;
}POINT;
void main()
{
int gd,gm;
POINT arr[1000];
int i;
int redius=80;
gd=DETECT;
initgraph(&gd,&gm,"C:\\JMSOFT\\DRV");
for(i=0;i<1000;i++)
{
arr[i].x=300+redius*sin(((1.0*i)/1000)*TWOPI);
arr[i].y=300+redius*cos(((1.0*i)/1000)*TWOPI);;
}
for(i=0;i<999;i++)
line(arr[i].x,arr[i].y,arr[i+1].x,arr[i+1].y);
getch();
closegraph();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
假设圆心点是(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);
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);
更多追问追答
追问
空心的园
追答
那就在声明2个变量,储存上次的x,y,循环的时候画上次的x,y到这次的x,y
不好意思,上面的代码还少了一个条件,里面那层循环里的
for(y=y0-r;x<=y0+r;y+=o.1)
{
if(sqr((x-x0)*(x-x0)-(y-y0)*(y-y0)))==r)
line(x,y,x0,y0);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询