Я бы ломаную представил в виде массива сегменов, а у сегмента хранить координаты начальной и конечной точек и длину. Потом пройтись в цикле по всей длине.
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | type
TSegment = record
PBegin, PEnd: TPoint;
L: LongWord ;
end ;
TLom = array of TSegment;
var
aLom: TLom;
procedure TForm1 . Button1Click(Sender: TObject);
var
i: Integer ;
begin
for i:= Low(aLom) to High(aLom) do
begin
end ;
end ;
|
Хотя длина сегмента L легко вычисляется по точкам конца, но, чтобы каждый раз не вычислять, лучше сделать это один раз при создании ломаной и хранить в записи.