⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 midellip.c

📁 画椭圆的算法的程序
💻 C
字号:

#include<graphics.h>
#include<conio.h>
#include<math.h>
void midellipse(int x1,int y1,float a,float b);
void main(void)
{
       int driver=DETECT,mode;
       initgraph(&driver,&mode,"c:\\turboc2");
       cleardevice();
       line(50,250,450,250);
       line(250,50,250,450);
       midellipse(250,250,150,100);
      /* setcolor(4);
       ellipse(200,200,0,360,150,100); */
       getch();
      closegraph();
}
void midellipse(int x1,int y1,float a,float b)
{
    float d1,d2;
    float x,y;
    x=x1;
    y=y1-b;
    d1=b*b+a*a*(0.25-b);
    putpixel(x,y,5);
    while(b*b*(x-x1+1)<a*a*(y1-y-0.5))
    {
       if(d1<0)
	 {
	    d1+=b*b*(2*(x-x1)+3);
	    x++;
	}
	else
	{
	   d1+=b*b*(2*(x-x1)+3)+a*a*(2+2*(y-y1));
	   x++;
	   y++;
	}
	putpixel(x,y,5);
	putpixel(x,2*y1-y,5);
	putpixel(2*x1-x,y,5);
	putpixel(2*x1-x,2*y1-y,5);
    }
    d2=b*b*(x-x1+0.5)*(x-x1+0.5)+a*a*(y1-y-1)*(y1-y-1)-a*a*b*b;
    while(y<y1)
    {
      if(d2<0)
      {
	 d2+=b*b*(2*(x-x1)+2)+a*a*(3+2*(y-y1));
	 x++;
	 y++;
      }
      else
	{
	  d2+=a*a*(3+2*(y-y1));
	  y++;
       }
       putpixel(x,y,5);
       putpixel(x,2*y1-y,5);
       putpixel(2*x1-x,y,5);
       putpixel(2*x1-x,2*y1-y,5);
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -