注册 登录
编程论坛 C图形专区

[求助]圆的微分算法只有四分之一!!-->unicorn转移

hfy19 发布于 2006-10-24 23:53, 1089 次点击


#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<conio.h>
#include<graphics.h>
void circ(float x1,float y1,float r)
{
void clrscr(void);

float x,y,n,m,i,j,x2,y2;
n=(int)(0.5*r+20); /*圆n等份*/
m=2*3.1415926535898/n; /*步进角度增量*/
x=(int)(x1-r+0.5);y=(int)(y1+0.5); /*起始坐标(x,y)*/
i=cos(m);j=sin(m);
putpixel(x,y,YELLOW);
for(;n>=1;n--)
{

x2=(int)(x*i-y*j); /*步进规律*/
y2=(int)(y*i+x*j);
putpixel(x2,y2,YELLOW);

x=x2;y=y2;
}
}
main()
{
float x1,y1,r;
int driver=DETECT, mode=0;
initgraph(&driver, &mode,"");


printf("inser the centre of a circle x1: \n");
scanf("%f",&x1);
printf("y1:\n");
scanf("%f",&y1);
printf("enter radius:\n");
scanf("%f",&r);

circ(x1,y1,r);
getch();
}
此题为圆的微分算法 只是不知道为什么圆心总是以(0,0)为中心 有时候只有几个点 而且只能看到圆的四分之一???????

[此贴子已经被作者于2006-10-25 12:30:01编辑过]

8 回复
#2
hfy192006-10-25 12:27

有没有人指点指点啊???

#3
hfy192006-10-26 12:49
#4
hfy192006-10-30 23:47
???还是没人啊
#5
unicorn2006-10-31 09:33

不是没人理 这是专业知识 不说具体的思想大家都不是很清楚吖
画圆吗?
中点圆 和bresenham算法更好些吧

-转到图形区吧 那里研究的人多-

#6
一笔苍穹2006-10-31 10:56
应该是你的算法有问题
#7
hfy192006-11-07 01:03
这里就是图形区啊
#8
hfy192006-11-07 01:05
当取的圆的半径大的时候就是一个很清楚的1/4   半径小的时候看不出是圆   算法没找到什么毛病啊   
#9
RockCarry2006-11-07 09:04
我晕,真是笨蛋,能画1/4圆,肯定就能画完整的圆了,真傻。
这样简单的道理都还不明白,自己去想吧。
1