Programação I - 2006/2007
Folha de exercícios 5
Cálculo da área de um polígono quadrilátero
Pretende-se calcular a área de um polígono quadrilátero, dadas as
coordenadas dos seus vértices numa ordem qualquer. O método usado só
pode ser aplicado a polígonos convexos, que são aqueles em
que o segmento de recta que une quaisquer dois pontos no seu interior
está completamente contido no seu interior.
Cálculo da área
A área do polígono será calculada a partir das áreas dos quatro
triângulos que os seus vértices definem.
A soma das áreas de dois destes triângulos que não se intersectem é
igual à área do polígono. Assim, a soma das áreas dos quatro
triângulos é o dobro da área do polígono. Dividindo este valor por 2,
obtém-se a área do polígono.
Tarefas a realizar
-
Desenhe um polígono quadrilátero convexo e identifique os quatro
triângulos definidos pelos quatro vértices.
-
Desenhe um polígono quadrilátero não convexo (côncavo) e
identifique os quatro triângulos.
-
Defina o(s) tipo(s) apropriado(s) para representar pontos no plano
XY.
-
Sabendo que num plano com coordenadas XY, a distância entre dois
pontos (com coordenadas (x1,y1) e (x2,y2)) é dada
pela fórmula:
raiz-quadrada( (x2-x1)2 + (y2-y1)2 )
implemente a função distancia que, dados dois pontos,
devolve a distância entre eles.
-
A área de um triângulo pode ser calculada pela fórmula de Heron:
raiz-quadrada( s(s-l1)(s-l2)(s-l3) )
em que l1, l2 e l3 são os comprimentos dos
lados do triângulo e s é seu semi-perímetro.
Implemente a função areaTriangulo que, dados os vértices de
um triângulo, devolve a sua área.
-
Implemente a função areaPoligono que recebe as coordenadas
dos quatro vértices de um polígono quadrilátero e devolve a sua
área. A área de um polígono, AP, pode ser calculada a partir
das áreas dos quatro triângulos definidos pelos seus quatro vértices
do seguinte modo:
AP = (AT1 + AT2 + AT3 + AT4)/2
onde ATi representa a área do triângulo i=1,2,3,4.
Se o polígono não for convexo, a sua área não pode ser calculada por
este método e a função deverá devolver -1.0. Num polígono não
convexo, a área de um dos quatro triângulos é igual à soma das áreas
dos outros três e este facto pode ser usado para detectar o tipo de
polígono cuja área se está a pedir para calcular.
-
Utilize a função anterior para calcular a área de, pelo menos, três
polígonos, incluindo pelo menos um não convexo.