Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
36
Добавлен:
16.04.2013
Размер:
2.43 Кб
Скачать
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit2.h"
#include <math.h>
#include <Math.hpp>
//---------------------------------------------------------------------------
#pragma package(smart_init)
//Конструктор
Complex::Complex(double R,double I,double xz,double yz,int numb,TImage* _Img)
{
Re=R; Im=I;
Img=_Img;
num=numb;
}
//---------------------------------------------------------------------------
Complex Complex::operator + (Complex X)
{ Complex R(0,0,0,0,0,Img);
 R.Re=Re + X.Re;
 R.Im=Im + X.Im;
 return R;
}
//---------------------------------------------------------------------------
Complex Complex::operator - ( Complex &X)
{
 Complex R(0,0,0,0,0,Img);
 R.Re=Re - X.Re;
 R.Im=Im - X.Im;
 return R;
}
//---------------------------------------------------------------------------
Complex & Complex::operator=(const Complex &R)
{
 Re=R.Re;
 Im=R.Im;
 //m=R.num;
 return *this;
}
//---------------------------------------------------------------------------
Complex Complex::operator*(const Complex &X) const
{
 Complex R(0,0,0,0,0,Img);
 R.Re=Re*X.Re-Im*X.Im;
 R.Im=Re*X.Im+Im*X.Re;
 return R;
}
//---------------------------------------------------------------------------
Complex Complex::operator /(const Complex &X) const
{
 Complex R(2,3,0,0,0,Img);
 R.Re=(Re*X.Re+Im*X.Im)/(Re*Re+Im*Im);
 R.Im=(-Re*X.Im+Im*X.Re)/(Re*Re+Im*Im);
 return R;
}
//---------------------------------------------------------------------------
void Complex::Rotate( double angle)
{double l=sqrt(Re*Re+Im*Im);
 double ugol=ArcTan2(Im,Re);
 Re=floor(10*l*cos(DegToRad(angle)+ugol))/10;
 Im=floor(10*l*sin(DegToRad(angle)+ugol))/10;

}
//---------------------------------------------------------------------------
void  Complex::Draw(int m)
{
 Img->Canvas->Pen->Width=2;
 Img->Canvas->Pen->Color=clRed;
 Img->Canvas->MoveTo(Img->Width/2,Img->Height/2);
 Img->Canvas->LineTo(Img->Width/2+Re*m,Img->Height/2-Im*m);
}
//---------------------------------------------------------------------------
void  Complex::ReDraw(int m)
{
 Img->Canvas->Pen->Width=2;
 Img->Canvas->Pen->Color=clWhite;
 Img->Canvas->MoveTo(Img->Width/2,Img->Height/2);
 Img->Canvas->LineTo(Img->Width/2+Re*m,Img->Height/2-Im*m);
}
//=-----------------------------------------------------------------------------


Соседние файлы в папке complex laba4