Площадь треугольника по 3 вершинам
Санек 22 дек 2011
Зная координаты трех вершин, надо найти площадь треугольника.
Входные данные
6 чисел - координаты вершин треугольника
Выходные данные
1 число - ответ на задачу
Решение
В алгоритме будут рассмотрены 3 варианта нахождения площади треугольника. Для решения задачи можно использовать любой вариант (но самый лучший - это косое произведение векторов).
Сообщение отредактировал Санек: 17 января 2012 - 19:34
Входные данные
6 чисел - координаты вершин треугольника
Выходные данные
1 число - ответ на задачу
Решение
В алгоритме будут рассмотрены 3 варианта нахождения площади треугольника. Для решения задачи можно использовать любой вариант (но самый лучший - это косое произведение векторов).
var x1,x2,x0,y1,y2,y0,s1,s2,s3,a,b,c,p,h:real; begin //1 Вариант. Косое произведение векторов readln(x1,y1,x2,y2,x0,y0); s1:=abs((x2-x1)*(y0-y1)-(y2-y1)*(x0-x1))/2; writeln(s1:0:15); //2 Вариант. По формуле Герона a:=sqrt((x1-x0)*(x1-x0)+(y1-y0)*(y1-y0)); b:=sqrt((x2-x0)*(x2-x0)+(y2-y0)*(y2-y0)); c:=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)); p:=(a+b+c)/2; s2:=sqrt(p*(p-a)*(p-B)/>*(p-c)); writeln(s2:0:15); //3 Вариант. Произведение высоту на сторону, к которой она проведена h:=abs((y2-y1)*x0+(x1-x2)*y0+(y1*x2-x1*y2))/sqrt(a*a+b*B)/>; s3:=h*c/2; writeln(s3:0:15 ); end.
Сообщение отредактировал Санек: 17 января 2012 - 19:34