椭圆增量方程:
代码如下:
#include "stdafx.h"
#include "iostream"
#include "graphics.h"
#include "stdlib.h"
#include "stdio.h"
#include "conio.h"
#include "dos.h"
using namespace std;
void wholecolor(double xc,double yc,double x,double y,int color)
{
putpixel(xc+x,yc+y,color);
putpixel(xc+x,yc-y,color);
}
void ellipse( double xc,double yc,double a,double b,int color)
{
double sqa = a * a;
double sqb = b * b;
double sqc = (double)sqrt(sqa-sqb);
double e=sqc/a;
double sqe=e*e;
double x = -a;
double y = 0;
double dx=0;
double dy= sqrt(2*(sqe-1)*x*dx+(sqe-1)*dx*dx);
while(dx<=2*a)
{
wholecolor(xc,yc,x+dx,y+dy,color);
dx=dx+0.01;
dy= sqrt(2*(sqe-1)*x*dx+(sqe-1)*dx*dx);
}
}
int main()
{
initgraph(640,480); //启动图形库
ellipse(200,200,80,50,BLUE); //画椭圆
getchar();
closegraph(); //关闭图形库
return 0;
}
画后效果图: