Помощь - Поиск - Пользователи - Календарь
Полная версия: координата центра опис. окружности ХЭЛП!
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
santa-klaOs
blink.gif Знаю координаты точек вершин треугольника {Xa,Ya; Xb,Yb; Xc,Yc}, длины сторон {AB=a; BC=b, CA=c}, радиус описанной окружности {R}. НУЖНА формула или ещё что-нибудь по нахождению координат центра этой окружности. wacko.gif
arhimag
смотри выводишь формулу прямой перпендикулярной, одной из сторон, и проходящей церез ее середину, дальше проделываешь тоже самое для другой и ищешь их точку пересечения
Altair
Цитата(http://forum.pc.uz/viewtopic.php?t=323&sid=99134d1853dc45e5146877e797a62179)

формулы:
x := ( (y1-y3)*(x1+x2+y1+y2) - (y1-y2)*(x1+x3+y1+y3) ) / ( 2*(x1-x3)*(y1-y2) + 2*(x1-x2)*(y1-y3) );

y := ( (x1-x3)*(x1+x2+y1+y2) - (x1-x2)*(x1+x3+y1+y3) ) / ( 2*(x1-x3)*(y1-y2) + 2*(x1-x2)*(y1-y3) );

код:

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
Спасибо... блин... короче, спасибо!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.