Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Определить функцию нахождения площади треугольника по координатам его вершин (http://www.tehnari.ru/f41/t70096/)

Inn 04.03.2012 23:36

Определить функцию нахождения площади треугольника по координатам его вершин
 
Привет всем! Я новичок в программировании,нам дали такую задачу
"Определить функцию нахождения площади треугольника по координатам его вершин. Найти площадь выпуклого многоугольника, по координатам его вершин, используя полученную функцию."
Бьюсь над ней уже месяц,никак не могу решить(( а сроки поджимают(
Помогите кто может,plz! )
Язык программирования Java

Taper 05.03.2012 00:01

А что удалось за месяц? Выкладывай, не стесняйся.

Inn 05.03.2012 00:13

В том то и дело,что вообще ничего :((( Попыток много,что было даже выкладывать стыдно(

Inn 05.03.2012 01:07

ребята,плиииз кто-нить хелп ми! :(

CrazyPOVT 05.03.2012 07:45

Начни с формулы Герона (насколько геометрию помню).

Rossomaxa 05.03.2012 07:52

Поддерживаю предыдущего подсказчика :). Так же, чтобы решить вторую часть читайте про триангуляцию, и методах разбиения многоугольников на симплексы, применяется в игровой индустрии.

AlexZir 05.03.2012 08:16

Если даны координаты вершин треугольника, сначала можете воспользоваться формулой нахождения длины отрезка по координатам его концов, и только после этого - формулой Герона.

По второй части - разбивайте многоугольник на конечное число треугольников и вычисляйте площадь каждого треугольника отдельно, затем полученные площади суммируйте.

Inn 06.03.2012 01:18

спасибо,додумала первую часть )
код мало немного получился )
теперь возник вопрос,а как разбить многоугольник на треугольники?

Inn 06.03.2012 01:41

Все,додумала вторую часть :)
class SqareMn {
int m,x1,x2,x3,y1,y2,y3; double p,a,b,c,s; int [][]A;
SqareMn(int size){
m=size;
A=new int [m][2];
for(int i=0;i<m;i++)
for(int j=0;j<2;j++){
A[i][j]=(int)((Math.random()*10));
}
x1=A[0][0];y1=A[0][1];//отмечаем первую точку
for (int i=1;i<A.length-1; ){
x2=A[i][0];
y2=A[i][1];i++;
x3=A[i][0];
y3=A[i][1]; //разбиваем на треугольники
a=Math.sqrt(((x3-x2)*(x3-x2))+((y3-y2)*(y3-y2)));
b=Math.sqrt(((x3-x1)*(x3-x1))+((y3-y1)*(y3-y1)));
c=Math.sqrt(((x2-x1)*(x2-x1))+((y2-y1)*(y2-y1)));
p=(a+b+c)/2; s+=Math.sqrt(p*(p-a)*(p-b)*(p-c));} // формула Герона
System.out.println("Площадь многоугольника с "+m+" вершинами = "+s+" кв.ед");//выводим
for(int i=0;i<m;i++){
for(int j=0;j<2;j++)
System.out.print(A[i][j]+ " ");
System.out.println(); } } }

вот что получилось )
все вроде работает )


Часовой пояс GMT +4, время: 03:55.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.