По моим формулам: {поиск центра окружности,

DanZer писал(-а):
Индейская изба фигвам получается... evil
Беру 3 произвольных точки в квадрате 400*400, например:
119,85

257,201
166,279
И выходит, что центр окружности будет примерно в 241,206, т.е. в аккурат рядом со второй точкой... shock

По моим формулам:

{поиск центра окружности, описанной вокруг треугольника}
{проверка деления на ноль не производится}

Const
x1=119;
y1=85;
x2=257;
y2=201;
x3=166;
y3=279;

Var Xo,Yo:extended;

Function X0:extended;
Var chisl,znam:longint;
Begin
  chisl:=(y3-y2)*(x1*x1+y1*y1)+(y1-y3)*(x2*x2+y2*y2)+(y2-y1)*(x3*x3+y3*y3);
  znam :=2*((y1-y2)*(x1-x3)-(y1-y3)*(x1-x2));
  X0:=chisl/znam;
End;

Function Y0(x0:extended):extended;
Var chisl,znam:extended;
Begin
  chisl:=x1*x1-x2*x2+y1*y1-y2*y2-2*(x1-x2)*x0;
  znam :=2*(y1-y2);
  Y0:=chisl/znam;
End;

Procedure Check(x,y:real);
Var R1,R2,R3:extended;
Begin
  R1:=sqrt((x1-x)*(x1-x)+(y1-y)*(y1-y));
  R2:=sqrt((x2-x)*(x2-x)+(y2-y)*(y2-y));
  R3:=sqrt((x3-x)*(x3-x)+(y3-y)*(y3-y));
  writeln('R1=',R1:4:2);
  writeln('R2=',R2:4:2);
  writeln('R3=',R3:4:2);
End;

BEGIN
  xo:=X0;
  yo:=Y0(xo);
  writeln('X0=',xo:4:2);
  writeln('Y0=',yo:4:2);
  writeln;
  Check(xo,yo);
END.

Результат работы:
-----------------
X0=158.47
Y0=178.13

R1=101.15
R2=101.15
R3=101.15

Задачка из геометрии: кто подскажет?