Вобщем у меня возникла проблема с описанием класса для окружности точноее для 2х окружностей
( красная точка - базовая точка класса "графический обьект" ,а синяя - дополнительная точка определенная в классе-наследнике )
!собственно вопрос, как мне описать дынный обьект?
до етого я делал задание с ромбом , обьект описал , програма его крутит вертит и перекрашивает
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <math.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
class figure {
public:
int x,y,r,r1;
double grad;
figure (int a=200, int b=200)
{ x=a; y=b; grad=0; r=100; }
virtual void draw (void)=0;
void sdvig(int t);
void povor(int c);
void mas (float g);
};
void figure::sdvig(int t)
{
x=(x>=0 && x<Form1->Width)?x+t:0;
}
void figure::povor(int c)
{
grad+=c*M_PI/180;
}
void figure::mas(float g)
{
r=r*g;
r1=r1*g;
}
class romb : public figure {
public:
void draw(void);
};
void romb::draw (void)
{
float alp=30*M_PI/180;
Form1->Canvas->Rectangle(-1,-1,Form1->Width+1,Form1->Height+1);
Form1->Canvas->MoveTo(x-r*cos(alp)*cos(grad),y-r*cos(alp)*sin(grad));
Form1->Canvas->LineTo(x-r*sin(alp)*sin(grad),y+r*sin(alp)*cos(grad));
Form1->Canvas->LineTo(x+r*cos(alp)*cos(grad),y+r*cos(alp)*sin(grad));
Form1->Canvas->LineTo(x+r*sin(alp)*sin(grad),y-r*sin(alp)*cos(grad));
Form1->Canvas->LineTo(x-r*cos(alp)*cos(grad),y-r*cos(alp)*sin(grad));
}
romb z;
void __fastcall TForm1::Button1Click(TObject *Sender)
{
z.draw();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
z.sdvig(5);
z.draw();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
int rr, rg, rb;
rr = rand()*255/RAND_MAX;
rg = rand()*255/RAND_MAX;
rb = rand()*255/RAND_MAX;
Form1->Canvas->Pen->Color=RGB(rr,rg,rb);
z.draw();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
z.mas(1.1);
z.draw();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
z.povor(20);
z.draw();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button6Click(TObject *Sender)
{
Form1->Canvas->Rectangle(-1,-1,Form1->Width+1,Form1->Height+1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button7Click(TObject *Sender)
{
Close();
}
(эта ромб)
после препод попросил меня написать програму которая также будет вертеть крутить круг который дан выше (по сути заменить ромб на окружность даную выше), но с его описанием у меня возникли проблемы , памагите галоднаму студенту аписать ету фигуру сдавать скоро, а с кругами и окружностями чота полные не лады, хз какими функциями их описывать), делать окрцжность из 100500 мелких прямых я думаю вообше не вариант)))
ЗЫ С++