по 3 точкам найти площадь и периметр треугольника!
подскажите формулы для вычисления пл и периметра тр-ка по 3 точкам...
хотелось бы сделать чтоб после ввода координат в правом углу строился этот треугольник. Так вот, как масштабировать тркугольник так чтоб наилучшим образом смотрелся а экране... хелп :molitva:
klem4
24.10.2005 0:47
Все что тебе нужно знать для решения сомой задачи (без построения рисунка) :
2 точки:(X,Y) (X1,Y1) По т.Пифагора D=sqrt(sqr(X-X1)+sqr(Y-Y1))
где D - расстояние межуд точками.
volvo
24.10.2005 0:47
Треугольник с медианами! (реализовано на Дельфи, правда, но перенести на Паскаль зная алгоритм труда не составит...) :yes:
punkska
5.01.2006 22:56
program Laba1;
uses Crt;
type
coor=record
x,y:byte;
end;
Mas=array[1..3] of coor;
rastP=array[1..3] of real;
const
N=3;
procedure getCoor( var treyg:Mas; const n:integer );
var
i:integer;
beginfor i:=1to n dobegin
writeln('point #',i);
write('X= ');
readln(treyg[i].x);
write('Y= ');
readln(treyg[i].y);
writeln('');
end;
end;
procedure getRast(var rast:rastP; var treyg:Mas);
begin
rast[1]:=sqrt( sqr(treyg[1].x-treyg[2].x) + sqr(treyg[1].y-treyg[2].y) );
rast[2]:=sqrt( sqr(treyg[3].x-treyg[2].x) + sqr(treyg[3].y-treyg[2].y) );
rast[3]:=sqrt( sqr(treyg[1].x-treyg[3].x) + sqr(treyg[1].y-treyg[3].y) );
end;
function findP(var rast:rastP):real;
begin
findP:=(rast[2]+rast[3]+rast[1]);
end;
function findS(var rast:rastP):real;
begin
findS:=sqrt(rast[1]+rast[2])/2;
end;
Var
treyg:mas;
rast:rastP;
begin
writeln('LABA 1');
getCoor(treyg,n);
getrast(rast,treyg);
writeln('nEPUMETP treyg: ',findP(rast):4:2);
writeln('n/\OWAgb POMbA: ',findS(rast):4:2);
writeln('THE END.');
readln;
end.
вот что я написал!!! но 100% уверен что S я неверно определил! тк если взять 2 других вектора(стороны) результат другой...подскажите плз!
зы ВСЕХ С ПРАЗДНИКАМИ!!! СЧАСТЛИВОГО РОЖДЕСТВА
volvo
5.01.2006 23:13
Вычисляем площадь треугольника по формуле Герона:
Function FindS(var rast: rastP): real;
var p: real;
begin
p := FindP(rast) / 2;
FindS := Sqrt(Abs(p*(p - rast[1])*(p - rast[2])*(p - rast[3])));
end;
Если длины сторон нашел правильно - должно работать...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.