中心椭圆算法画图C++

中心椭圆算法画图C++

 

//中心椭圆算法画图
inline int round(const float a){return int(a+0.5);}
void ellipsePlotPoints(int xCenter,int yCenter,int x,int y)
{
	setPixel(xCenter+x,yCenter+y);
	setPixel(xCenter-x,yCenter+y);
	setPixel(xCenter+x,yCenter-y);
	setPixel(xCenter-x,yCenter-y);
}
void ellipseMidpoint(int xCenter,int yCenter,int Rx,int Ry)
{
	int Rx2=Rx*Rx;
	int Ry2=Ry*Ry;
	int twoRx2=2*Rx2;
	int twoRy2=2*Ry2;
	int p;
	int x=0;
	int y=Ry;
	int px=0;
	int py=twoRx2*y;
	ellipsePlotPoints(xCenter,yCenter,x,y);
	//区域1
	p=round(Ry2-(Rx2*Ry)+(0.25*Rx2));
	while(px0)
	{
	y--;
	py-=twoRx2;
	if(p>0) p+=Rx2-py;
	else
	{
	x++;
	px+=twoRy2;
	p+=Rx2-py+px;
	}
	ellipsePlotPoints(xCenter,yCenter,x,y);
	}
	
}

如果您觉得这篇博文有用,请访问我的个人站:http://www.stubbornhuang.com,更多博文干货等着您。

 

 

 

 

你可能感兴趣的:(C++,计算机图形图像)