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

  1. Desenhe um polígono quadrilátero convexo e identifique os quatro triângulos definidos pelos quatro vértices.
  2. Desenhe um polígono quadrilátero não convexo (côncavo) e identifique os quatro triângulos.
  3. Defina o(s) tipo(s) apropriado(s) para representar pontos no plano XY.
  4. 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.
  5. 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.

  6. 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.

  7. Utilize a função anterior para calcular a área de, pelo menos, três polígonos, incluindo pelo menos um não convexo.