Добавил:
korayakov
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабы / ООП.Builder / Лабы / laba3 / 3.3 / Unit1
.cpp//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
void __fastcall TForm1::SpeedButton1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{ Cli=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton1MouseUp(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{ Cli=false;
}
//---------------------------------------------------------------------------
void Redraw(TColor r)
{ TPoint p[3],q,q1;
Form1->Canvas->Pen->Color=r;
p[0]=Point(Form1->SpeedButton1->Left+Form1->SpeedButton1->Width/2,Form1->SpeedButton1->Top+Form1->SpeedButton1->Height/2);
p[1]=Point(Form1->SpeedButton2->Left+Form1->SpeedButton2->Width/2,Form1->SpeedButton2->Top+Form1->SpeedButton1->Height/2);
p[2]=Point(Form1->SpeedButton3->Left+Form1->SpeedButton3->Width/2,Form1->SpeedButton3->Top+Form1->SpeedButton1->Height/2);
for(double i=0;i<100;i++)
{ double t=i/100;
q.x=p[0].x*(t-1)*(t-1)+2*t*p[1].x*(1-t)+t*t*p[2].x;
q.y=p[0].y*(t-1)*(t-1)+2*t*p[1].y*(1-t)+t*t*p[2].y;
t=(i+1)/100;
q1.x=p[0].x*(t-1)*(t-1)+2*t*p[1].x*(1-t)+t*t*p[2].x;
q1.y=p[0].y*(t-1)*(t-1)+2*t*p[1].y*(1-t)+t*t*p[2].y;
Form1->Canvas->MoveTo(q.x,q.y);
Form1->Canvas->LineTo(q1.x,q1.y);
};
}
void __fastcall TForm1::SpeedButton1MouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{ if(Cli){Redraw(clWhite);
((TSpeedButton*)Sender)->Top+=Y;
((TSpeedButton*)Sender)->Left+=X;
Redraw(clRed);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Canvas->Pen->Width=2;
Redraw(clRed);
}
//---------------------------------------------------------------------------
Соседние файлы в папке 3.3