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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| //Constructeur
__fastcall jParcours::jParcours(TComponent *Owner)
: TComponent(Owner)
{
Points = new TList;
}
//Destructeur
__fastcall jParcours::~jParcours()
{
Purge();
delete Points;
}
//Pour purger la liste
void __fastcall jParcours::Purge()
{
for(int j = 0; j < Points->Count; j++)
{
delete (TPoint*)Points->Items[j];
}
Points->Clear();
}
//L'objet va se dessiner à l'aide du canvas donné comme paramètre
void __fastcall jParcours::Draw(TCanvas *C)
{
TPoint *P;
C->Pen->Color = clRed; //Parcours en rouge
C->MoveTo(P1.x, P1.y); //on démarre de P1
for(int j = 0; j < Points->Count; j++)
{
P = (TPoint*)Points->Items[j];
C->LineTo(P->x, P->y); //on dessine autant de segments
}
C->LineTo(P2.x, P2.y); //on termine la ligne brisée en P2
//Pour dessiner de P1 à P2, la distance la plus courte, on termine sur P1
C->Pen->Color = clBlue; //segment en bleu
C->LineTo(P1.x, P1.y);
}
//L'objet crée un point qu'il initialse avec X,Y,
//qu'il enregistre en fin de liste et dont il renvoie le pointeur
TPoint* __fastcall jParcours::Add(int X, int Y)
{
TPoint *P = new TPoint;
*P = Point(X,Y);
Points->Add(P);
return P;
}
//Pour purger la liste de points
void __fastcall jParcours::Clear()
{
Purge();
}
//renvoie la longueur du segment
double __fastcall jParcours::LongueurSegment()
{
return hypot(P2.x - P1.x, P2.y - P1.y);
}
//renvoie la longueur du parcours
double __fastcall jParcours::LongueurParcours()
{
double n = 0.0;
//A toi de jouer parce que je ne vais pas tout faire ici !
return n;
} |
Partager