Stop
SOURCE CODE:
//---------------------------------------------------------------------------
#include <vcl\vcl.h>
#pragma hdrstop
#include "ellipse.h"
//---------------------------------------------------------------------------
#pragma resource
"*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall
TForm1::TForm1(TComponent* Owner)
:
TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall
TForm1::Button1Click(TObject *Sender)
{
int
Xc=StrToInt(Edit1->Text);
int
Yc=StrToInt(Edit2->Text);
int
rx=StrToInt(Edit3->Text);
int
ry=StrToInt(Edit4->Text);
int rxSq = rx *
rx;
int rySq = ry * ry;
int X = 0, Y = ry,
p;
int px = 0,
py = 2 * rxSq * Y;
Canvas->Pixels[Xc+X][Yc+Y]=RGB(0,0,255);
Canvas->Pixels[Xc-X][Yc+Y]=RGB(0,255,0);
Canvas->Pixels[Xc+X][Yc-Y]=RGB(255,255,0);
Canvas->Pixels[Xc-X][Yc-Y]=RGB(255,0,255);
p = rySq - (rxSq *
ry) + (0.25 * rxSq);
while (px < py)
{
X++;
px = px + 2 *
rySq;
if (p < 0)
p = p + rySq +
px;
else
{
Y--;
py = py - 2 *
rxSq;
p = p + rySq + px
- py;
}
Canvas->Pixels[Xc+X][Yc+Y]=RGB(0,0,255);
Canvas->Pixels[Xc-X][Yc+Y]=RGB(0,255,0);
Canvas->Pixels[Xc+X][Yc-Y]=RGB(255,255,0);
Canvas->Pixels[Xc-X][Yc-Y]=RGB(255,0,255);
}
p =
rySq*(X+0.5)*(X+0.5) + rxSq*(Y-1)*(Y-1) - rxSq*rySq;
while (Y > 0)
{
Y--;
py = py - 2 *
rxSq;
if (p > 0)
p = p + rxSq -
py;
else
{
X++;
px = px + 2 *
rySq;
p = p + rxSq - py
+ px;
}
Canvas->Pixels[Xc+X][Yc+Y]=RGB(0,0,255);
Canvas->Pixels[Xc-X][Yc+Y]=RGB(0,255,0);
Canvas->Pixels[Xc+X][Yc-Y]=RGB(255,255,0);
Canvas->Pixels[Xc-X][Yc-Y]=RGB(255,0,255);
}
}
//---------------------------------------------------------------------------
Ouput: