Добавил:
korayakov
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабы / С++Builder / Laba4 / compl
.h//---------------------------------------------------------------------------
#ifndef complH
#define complH
//---------------------------------------------------------------------------
#endif
#include <vcl.h>
struct EPoint
{
double x;
double y;
};
class Compl
{
private:
double x,y;
TImage* Img;
bool issel;
public:
bool IsSelected() {return issel;};
Mark(bool h);
ReDraw(bool vis=true);
EPoint GetXY() {EPoint bb;bb.x=x;bb.y=y;return bb;};
Compl(double r, double angle, TImage* _Img);
Compl(EPoint begin, EPoint end, TImage* _Img);
Compl(const Compl &source, TImage* _Img);
~Compl();
rotate(double angle);
double getangle(Compl n1,Compl n2);
Compl& operator= (Compl num) {
x = num.x;
y = num.y;
return *this;
}
Compl& operator+= (const Compl *num) {
x+=num->x;
y+=num->y;
return *this;
}
Compl& operator= (const Compl *num) {
x=num->x;
y=num->y;
return *this;
}
Compl operator + (Compl num)
{
Compl z(0,0,Img);
z.x=num.x+x;
z.y=num.y+y;
return z;
}
Compl operator - (Compl num)
{
Compl z(0,0,Img);
z.x=-num.x+x;
z.y=-num.y+y;
return z;
}
Compl operator * (Compl num)
{
Compl z(0,0,Img);
z.x=x*num.x-y*num.y;
z.y=x*num.y+y*num.x;
return z;
}
Compl operator / (Compl num)
{
Compl z(0,0,Img);
z.x=(x*num.x+y*num.y)/(num.x*num.x+num.y*num.y);
z.y=(-x*num.y+y*num.x)/(num.x*num.x+num.y*num.y);
return z;
}
Compl& operator-= (Compl num) {
x-=num.x;
y-=num.y;
return *this;
}
Compl& operator*= (Compl num) {
x=x*num.x-y*num.y;
y=x*num.y+y*num.x;
return *this;
}
Compl& operator/= (Compl num) {
x=(x*num.x+y*num.y)/(num.x*num.x+num.y*num.y);
y=(-x*num.y+y*num.x)/(num.x*num.x+num.y*num.y);
return *this;
}
};