Знаю координаты точек вершин треугольника {Xa,Ya; Xb,Yb; Xc,Yc}, длины сторон {AB=a; BC=b, CA=c}, радиус описанной окружности {R}. НУЖНА формула или ещё что-нибудь по нахождению координат центра этой окружности.
arhimag
13.12.2006 1:37
смотри выводишь формулу прямой перпендикулярной, одной из сторон, и проходящей церез ее середину, дальше проделываешь тоже самое для другой и ищешь их точку пересечения
type
CircleData=record
x,y,r:extended
end;
var
c:CircleData;
procedure FindCenter(X1,Y1,X2,Y2,X3,Y3:integer);
//нахождение центра и радиуса окружности, описанной
//вокруг треугольника с вершинами в точках
//(X1,Y1), (X2,Y2) и (X3,Y3)
var
a1,a2,b1,b2,c1,c2,znam:extended;
begin
a1:=x2-x1;
a2:=x3-x1;
b1:=y2-y1;
b2:=y3-y1;
c1:=(a1*(x2+x1)+b1*(y2+y1))/2;
c2:=(a2*(x3+x1)+b2*(y3+y1))/2;
znam:=a1*b2-a2*b1;
//здесь, при необходимости, можно вставить проверку деления на 0
//... и ругань на некорректный ввод :-) в случае чего. но я с этим
//заморачиваться не стал.
c.x:= (c1*b2 - c2*b1)/znam;
c.y:= (a1*c2 - a2*c1)/znam;
c.r:= sqrt(sqr((x1-c.x))+sqr(y1-c.y));
end;
santa-klaOs
13.12.2006 4:28
Спасибо... блин... короче, спасибо!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.