X = A.X + random (50);. Y = AY-random (100) ;. X = BX + (BX - AX);. Y = AY; = new TTriangle (A, B, C, GREEN, I); (T);
};. X = 50 + random (450);. Y = 100 + random (200);. X = 50 + random (400);. Y = 100 + random (300); = new TLine (A, B, WHITE, 0);
}; TTriangleLst :: LoadFromFile (char * FileName)
{* Item; A, B, C; f; (f.open (FileName, ios :: in) == 0) ("Не можу відкрити вхідний файл% s", FileName) ; from (& f);>> (AX);. get ();>> (AY);. get ();>> (BX);. get ();>> ; (BY);. get ();. get (); = new TLine (A, B, WHITE, 0); (! (from.eof ()))
{>> (AX);. get ();>> (AY);. get ();>> (BX);. get ();> > (BY);. get ();>> (CX);. get ();>> (CY);. get ();. get (); = new TTriangle (A, B, C, GREEN, 0); (Item);
};. close ();
}; TTriangleLst :: SaveToFile (char * FileName)
{* Item; (FileName); f; (f.open (FileName, ios :: out) == 0) ("Не можу відкрити вихідний файл% s", FileName); to (& f); <<(Line-> AX) <<' n'; <<(Line-> AY) <<' n'; << (Line-> BX) <<' n'; <<(Line-> BY) <<' n'; <<' n'; = (TTriangle *) FirstItem; (Item)
{<<(Item-> AAX) <<' n'; <<(Item-> AAY) <<' n'; < ; <(Item-> BAX) <<' n'; <<(Item-> BAY) <<' n'; <<(Item-> CAX) <<' n'; <<(Item-> CAY) <<' n'; (Item-> Next) <<' n'; = (TTriangle *) Item-> Next;
};. close (); ("Tria.dat");
}; TTriangleLst :: SaveCrossedTria (char * FileName)
{* Item; (FileName); f; (f.open (FileName, ios :: out) == 0) ("Не можу відкрити вихідний файл% s", FileName); to (& f); = (TTriangle *) FirstItem; (Item)
{(Item-> Crossed)
{<<(Item-> AAX) <<' n'; <<(Item-> AAY) <<' n'; < ; <(Item-> BAX) <<' n'; <<(Item-> BAY) <<' n'; <<(Item-> CAX) <<' n'; <<(Item-> CAY) <<' n'; (Item-> Next) <<' n';
}; = (TTriangle *) Item-> Next;
};. close ();
}; TTriangleLst :: SetBiggSmall ()
{* Item; = (TShape *) FirstItem; = (TTriangle *) FirstItem-> Next; (Item)
{(Item-> Area <((TTriangle *) Smaller) -> Area) = Item; = (TTriangle *) Item-> Next;
};
((TTriangle *) Smaller) -> Smaller = True;
}; TTriangleLst :: Cross (TLine * Item, TLine * SubItem)
{x, y; x11 = Item-> AX, y11 = Item-> AY; x12 = Item-> BX, y12 = Item-> BY; x21 = SubItem-> ; AX, y21 = SubItem-> AY; x22 = SubItem-> BX, y22 = SubItem-> BY; b1, b2, d, dx, dy; k11, k12, k21, k22;
// *** вирахували. = y12-y11; = x11-x12; = y22-y21; = x21-x22; = x11 * k11 + y11 * k12; = x21 * k21 + y21...