Implemente a função area_poligono(matriz). Esta função calculará a área de um polígono convexo cujos vértices estão na matriz (
indeterminado). Dicas: utilize a função area_triangulo(mat) que calcula a área de um triângulo. Em um quadrilátero com vértices
e
, a área do mesmo consiste da soma dos triângulos com vértices
e
e
e
.
Passo 1
Beleza, vamos começar entendendo o que o exercício pede. Precisamos implementar uma função chamada
area_poligono(matriz)
que calcula a área de um polígono convexo. Os vértices desse polígono estão fornecidos em uma matriz com N linhas e 2 colunas, onde N é o número de vértices. Para resolver isso, vamos precisar dividir o polígono em triângulos menores, calcular a área de cada triângulo usando a função area_triangulo(mat)
e somar essas áreas para obter a área total do polígono.Passo 2
Primeiro, vamos pensar em como dividir o polígono convexo em triângulos. Uma forma comum é selecionar um vértice fixo (por exemplo, o primeiro vértice) e formar triângulos com esse vértice e dois vértices consecutivos. Isso funciona bem para polígonos convexos porque não há cruzamento das diagonais.
Passo 3
Vamos supor que temos um polígono com vértices ordenados como
. Vamos fixar
como o vértice comum e formar triângulos
,
, e assim por diante, até
.
Passo 4
Para cada desses triângulos, vamos usar a função
area_triangulo(mat)
que já está disponível. Essa função recebe uma matriz com as coordenadas dos três vértices do triângulo e retorna a área desse triângulo.Passo 5
Vamos somar todas as áreas dos triângulos formados para obter a área total do polígono. Essa soma será a nossa resposta final.
Passo 6
Agora, vamos colocar isso tudo em código. Vou escrever uma função em Python que segue esses passos. Lembre-se de que você precisa ter a função
area_triangulo(mat)
já definida para que isso funcione.def area_poligono(matriz):
"""
Calcula a área de um polígono convexo dado seus vértices.
:param matriz: Lista de listas ou array com as coordenadas dos vértices, onde cada sub-lista tem 2 elementos [x, y]
:return: Área do polígono
"""
if len(matriz) < 3:
return 0 # Não é um polígono
area_total = 0
vertice_fixo = matriz[0]
for i in range(1, len(matriz) - 1):
triangulo = [vertice_fixo, matriz[i], matriz[i + 1]]
area = area_triangulo(triangulo)
area_total += area
return area_total
Resposta
Pronto! A função
area_poligono(matriz)
está implementada. Ela divide o polígono convexo em triângulos coletando um vértice fixo e dois vértices consecutivos, calcula a área de cada triângulo usando area_triangulo(mat)
e soma todas as áreas para obter a área total do polígono.Exercícios relacionados
Implemente o jogo Blackjack ou 21. No caso temos apenas dois jogadores, o cliente (humano) e a banca (computador). O ás pode valer 1 ou 11, de acordo com as cartas que o jogador possui. O valete (J), a dama (Q) e o rei (K) valem 10. A simulação da obtenção das cartas deve ser feita com o uso de números aleatórios (Dica: carta
random.randint( 1,13 ), isto é, variando de 1 a 13). Os números 11, 12 e 13 representam respectivamente J, Q e K. Não há a necessidade de representar um baralho real de 52 cartas. O cliente recebe inicialmente duas cartas aleatoriamente e decide se pede outra ou não, dependendo do somatório. Caso a soma das cartas seja maior que 21, o cliente perde. O cliente pode passar a vez para a banca (que não possui cartas no início do jogo), que, para vencer, terá que obter obrigatoriamente um número maior que o cliente e MENOR do que 21, caso contrário, o cliente ganha. O jogo tem apenas uma rodada. Informe quem ganhou ou se houve empate.
Crie um algoritmo que leia um número decimal (com qualquer número de dígitos) e o converta para a base hexadecimal. A resposta deve ser dada em string.
Sudoku. Implemente a função Sudoku(matriz). matriz é uma matriz 9×9 com números de 0 a 9 , onde 0 representaria uma posição vazia num jogo de Sudoku. A função deve trocar todas os números errados, segundo o critério do Sudoku por 0. Você pode utilizar os métodos embutidos nas classes list e set do Python.
Leia um vetor de 40 posições e conte quantos elementras pares encontram no vetor.