 
        
        
          Добавил:
          
          
        
        
    
            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);
}
