limingellipse.h

来自「自己编的程序大家下载一下很好的希望大家多多提出意见」· C头文件 代码 · 共 53 行

H
53
字号
#include "math.h"
#include "windows.h"

class limingellipse
{
public:
	void Midellipse(CDC* pDC,int a,int b,int xc,int yc,int m_red,int m_green,int m_blue);
};
void limingellipse::Midellipse(CDC* pDC,int a,int b,int xc,int yc,int m_red,int m_green,int m_blue)
{
	int c=RGB( m_red,m_green,m_blue);
	int x=0,y=b;
	double d1=b*b+a*a*(0.25-b),d2;
	pDC->SetPixel(x+xc,y+yc,c);
	pDC->SetPixel(-x+xc,y+yc,c);
	pDC->SetPixel(x+xc,-y+yc,c);
	pDC->SetPixel(-x+xc,-y+yc,c); 
	while(b*b*(x+1)<a*a*(y-0.5))
	{
		if(d1>=0)
		{
			d1+=b*b*(2*x+3)+a*a*(-2*y+2);
			y--;
		}
		else
		{
			d1+=b*b*(2*x+3);
		}
		x++;
	    pDC->SetPixel(x+xc,y+yc,c);
	    pDC->SetPixel(-x+xc,y+yc,c);
	    pDC->SetPixel(x+xc,-y+yc,c);
	    pDC->SetPixel(-x+xc,-y+yc,c);
	}
	d2=sqrt(b*(x+0.5))+a*(y-1)-a*b;
	while(y>0)
	{
		if(d2>=0)
		{
			d2+=a*a*(-2*y+3);
		}
		else
		{
			d2+=b*b*(2*x+2)+a*a*(-2*y+3);
			x++;
		}
		y--;
	    pDC->SetPixel(x+xc,y+yc,c);
	    pDC->SetPixel(-x+xc,y+yc,c);
	    pDC->SetPixel(x+xc,-y+yc,c);
	    pDC->SetPixel(-x+xc,-y+yc,c);
	}
}

⌨️ 快捷键说明

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