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
| procedure TForm1.Button15Click(Sender: TObject);
var
indx1, indx2 : integer;
numeroitemcomparemaster, numeroitemcompareslave : integer;
distance : integer;
catheteX, catheteY : real;
PlusCourteDistance : integer;
PlusCourteDistanceX, PlusCourteDistanceY : integer;
coorX, coorY : integer;
begin
numeroitemcomparemaster := 0;
For indx1 := 1 to ListboxX.items.count do
begin
numeroitemcompareslave := 0;
plusCourteDistance := 40000;
coorX:= StrToInt(ListBoxX.items[numeroitemcomparemaster]);
coorY:= StrToInt(ListBoxY.items[numeroitemcomparemaster]);
For indx2 := 1 to ListboxX.items.count do
begin
catheteX := ( (StrToFloat(ListBoxX.Items[numeroitemcomparemaster])) -
(StrToFloat(ListboxX.items[numeroitemcompareslave])) );
catheteY := ( (StrToFloat(ListBoxY.Items[numeroitemcomparemaster])) -
(StrToFloat(ListboxY.items[numeroitemcompareslave])) );
Distance := Round(sqrt(
(CatheteX*CatheteX) + (CatheteY*CatheteY)
));
If (pluscourteDistance = 40000) or (Distance < pluscourtedistance) then
begin
PlusCourteDistance := Distance;
PlusCourteDistanceX := StrToInt(ListboxX.Items[numeroitemcompareslave]);
PlusCourteDistanceY := StrToInt(ListboxY.Items[numeroitemcompareslave]);
end;
numeroitemcompareslave := numeroitemcompareslave + 1;
end;
//dessin des lignes
Form2.Image2.Canvas.Brush.color := clred;
Form2.Image2.Canvas.MoveTo(coorX, coorY);
Form2.Image2.Canvas.LineTo(PlusCourteDistanceX, PlusCourteDistanceY);
//fin
numeroitemcomparemaster := numeroitemcomparemaster + 1;
end;
end; |
Partager