
05.03.2010, 20:37
|
Модератор
|
|
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
|
|
Теорему пифагора знаем?
Начерти на бумажке 2 точки в произвольных местах и соедини их отрезком. Сделай проекции этого отрезка на оси. А теперь напиши формулу расчета длинны отрезка по координатам точек. Ну и сама подпись тоже делается легко - надо расчитать координаты середины отрезка и туда вывести соотв. длинну.
Код:
uses
Math;
function GetLen(C1, C2 : Integer) : Integer;
begin
Result := Max(C1,C2) - Min(C1,C2);
end;
var
I, J : Integer;
L : Double;
Points = Array Of TPoint;
begin
For I := Low(Points) To High(Points) Do
For J := I + 1 To High(Points) Do
Begin
If I = J Then Continue;
// Calc len
L = Sqrt(sqr(GetLen(Points[i].X,Points[J].X)) + sqr(GetLen(Points[i].Y,Points[J].Y)));
// draw. Self = TForm
Self.Canvas.MoveTo(Points[i].X,Points[i].Y);
Self.Canvas.LineTo(Points[J].X,Points[J].Y);
// Лень высчитывать координаты серидины.
Self.Canvas.TextOut(Points[i].X,Points[i].Y,FloatToStr(L));
End;
end;
|