Добавил:
korayakov
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабы / С++Builder / Laba5 / защита / Unit2
.cpp//---------------------------------------------------------------------------
#pragma hdrstop
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
Strelka::Strelka(TImage* _Img)
{
Img=_Img;
len=100;
x0=Img->Width/2;
y0=Img->Height/2;
ang=pi/2;
SetAngle(pi/2);
for (int i=0;i<24;i++)
{
Img->Canvas->Font->Color=clBlue;
Img->Canvas->Brush->Style=bsClear;
AnsiString ss=IntToStr(i);
if (i<10) ss="0"+ss;
Img->Canvas->TextOutA(x0-7+120*cos(+pi/2-i/24.*2*pi),y0-5-120*sin(+pi/2-i/24.*2*pi),ss);
}
}
Strelka::SetAngle(double Angle)
{
Img->Canvas->Pen->Width=2;
Img->Canvas->Pen->Color=clWhite;
Img->Canvas->PenPos=TPoint(x0,y0);
Img->Canvas->LineTo(x0+len*cos(ang),y0-len*sin(ang));
Img->Canvas->Pen->Color=clRed;
Img->Canvas->PenPos=TPoint(x0,y0);
Img->Canvas->LineTo(x0+len*cos(Angle),y0-len*sin(Angle));
ang=Angle;
Img->Canvas->Brush->Style=bsClear;
Img->Canvas->Ellipse(x0-100,y0-100,x0+100,y0+100);
Img->Canvas->Brush->Style=bsSolid;
Img->Canvas->Brush->Color=clRed;
Img->Canvas->Ellipse(x0-5,y0-5,x0+5,y0+5);
for (int i=0;i<24;i++)
{
int e=4;
Img->Canvas->Ellipse(-e+x0+100*cos(+pi/2-i/24.*2*pi),-e+y0-100*sin(+pi/2-i/24.*2*pi),e+x0+100*cos(+pi/2-i/24.*2*pi),e+y0-100*sin(+pi/2-i/24.*2*pi));
}
}
SuperStrelka::SuperStrelka(TImage* _Img, int _len):Strelka(_Img)
{
Img=_Img;
len=_len;
x0=Img->Width/2;
y0=Img->Height/2;
ang=pi/2;
SetAngle(pi/2,len);
}
SuperStrelka::SetAngle(double Angle, int _len)
{
Img->Canvas->Pen->Width=2;
Img->Canvas->Pen->Color=clWhite;
Img->Canvas->PenPos=TPoint(x0,y0);
Img->Canvas->LineTo(x0+len*cos(ang),y0-len*sin(ang));
len=_len;
Strelka::SetAngle(Angle);
}