Добавил:
korayakov
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <math.h>
#include "ball1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
CBall::CBall(TImage* _Img)
{
Img=_Img;
v=0;
}
void CBall::Hide()
{
Img->Canvas->Pen->Color=clWhite;
Img->Canvas->Brush->Color=clWhite;
Img->Canvas->Ellipse(x-10,y-10,x+10,y+10);
}
void CBall::MoveToAngle(float Dang)
{
float xc=(Img->Width)/2;
float yc=(Img->Height)/2;
angle+=Dang+v;
x=xc+40*cos(angle);
y=yc-40*sin(angle);
v+=0.1;
Img->Canvas->Pen->Color=clBlue;
Img->Canvas->Brush->Color=clBlue;
Img->Canvas->Ellipse(x-10,y-10,x+10,y+10);
if (angle>=angle0+(2*pi-pi/2)) throw excp();
}
void CBall::Fly(int dx,int dy)
{
x+=5*v*cos(2*pi-pi/2-angle)*t;
y+=v*sin(2*pi-pi/2+angle)*t+9.8*t*t/2;
Img->Canvas->Pen->Color=clBlue;
Img->Canvas->Brush->Color=clBlue;
Img->Canvas->Ellipse(x-10,y-10,x+10,y+10);
}
CSupport::CSupport(TImage* _Img)
{
Img=_Img;
xc=(Img->Width)/2;
yc=(Img->Height)/2;
angle=pi/4;
RotateToAngle(0);
}
void CSupport::RotateToAngle(float Dang)
{
angle+=Dang;
Img->Canvas->Pen->Width=1;
Img->Canvas->Pen->Color=clRed;
Img->Canvas->Brush->Color=clRed;
Img->Canvas->Arc(xc-R,yc-R, xc+R, yc+R,
xc+R*cos(angle),
yc-R*sin(angle),
xc+R*cos(angle-pi/4),
yc-R*sin(angle-pi/4));
}
void CSupport::Hide()
{
Img->Canvas->Pen->Width=3;
Img->Canvas->Pen->Color=clWhite;
Img->Canvas->Brush->Color=clWhite;
Img->Canvas->Ellipse(xc-R, yc-R, xc+R, yc+R);
}