1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| void __fastcall TForm1guerrier::FormKeyPress(TObject *Sender, char &Key)
{
const int segmentLongueur = Image1graphe->Height/10;
static float Angle = -M_PI/2;
float Cinq = 5*M_PI/180; // conversion en radian
if (((Key == 'l')||(Key == 'L'))&(-Angle *180/M_PI > 5 ))
{
Angle = Angle + Cinq; //incrémenté par pas de 5
Image1graphe->Canvas->Pen->Color = clWhite;
Image1graphe->Canvas->MoveTo(segmentDebutX, segmentDebutY);
Image1graphe->Canvas->LineTo(segmentFinX, segmentFinY);
segmentFinX = segmentDebutX + segmentLongueur * cos(Angle);
segmentFinY = segmentDebutY + segmentLongueur * sin(Angle);
Image1graphe->Canvas->Pen->Color = clRed;
Image1graphe->Canvas->Pen->Width = 5;
Image1graphe->Canvas->MoveTo(segmentDebutX, segmentDebutY);
Image1graphe->Canvas->LineTo(segmentFinX, segmentFinY);
}
if (((Key == 'K')||(Key == 'k'))&(-Angle*180/M_PI < 175 ))
{
Angle = Angle - Cinq; //par pas de cinq
Image1graphe->Canvas->Pen->Color = clWhite;
Image1graphe->Canvas->MoveTo(segmentDebutX, segmentDebutY);
Image1graphe->Canvas->LineTo(segmentFinX, segmentFinY);
segmentFinX = segmentDebutX + segmentLongueur * cos(Angle);
segmentFinY = segmentDebutY + segmentLongueur * sin(Angle);
Image1graphe->Canvas->Pen->Color = clRed;
Image1graphe->Canvas->Pen->Width = 5;
Image1graphe->Canvas->MoveTo(segmentDebutX, segmentDebutY);
Image1graphe->Canvas->LineTo(segmentFinX, segmentFinY);
}
Panel1angle->Caption = FloatToStrF(-Angle*180/M_PI,ffFixed,3,2);
}
//--------------------------------------------------------------------------- |
Partager