Você está aqui: C++ ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular a apótema de um polígono regular de N lados em C++Quantidade de visualizações: 666 vezes |
Uma das formas mais comuns de se obter a área de um polígono regular é usando a seguinte fórmula: \[\text{A} = \frac{1}{2} \cdot \text{p} \cdot \text{a} \] Onde: p: Perímetro, ou seja, a soma dos comprimentos de todos os lados. a: Apótema, isto é, uma parte que une o centro do polígono ao meio de qualquer lado que esteja perpendicular. Agora que já estamos alinhados, saiba que calcular a apótema de um polígono regular "na mão" é fácil, já que só precisamos medir a distância de dois lados opostos e dividir por dois ou traçar linhas cruzadas e medir a distância de um dos lados até a interseção dessas linhas. No entanto, em programação a coisa já é um pouco mais complicada. Nesta dica mostrarei como podemos realizar esta tarefa em C++. Para isso usaremos alguns truques de trigonometria. Comece analisando a seguinte imagem: ![]() Note que temos um pentágono com cada lado medindo 4 metros. Recorde que um pentágono é um polígono regular de 5 lados. Para deixar a dica mais didática eu coloquei também uma linha azul representando a apótema do polígono e as linhas cruzadas. Veja agora o código C++ que recebe a quantidade de lados do polígono, o comprimento dos lados e retorna a apótema: #include <iostream> #include <math.h> // vamos definir uma constante para o valor de PI #define PI 3.1415 using namespace std; // função que calcula e retorna a apótema de um // polígono regular double calcular_apotema(int lados, int comprimento){ // a quantidade de lados e o comprimento deles // não podem ser negativos if (lados < 0 || comprimento < 0){ return -1; } // calculamos a apótema return (comprimento / (2 * tan((180 / lados) * PI / 180))); } // função principal do programa int main(int argc, char *argv[]){ int lados, comprimento; // vamos ler a quantidade de lados cout << "Informe a quantidade de lados: "; cin >> lados; // vamos ler o comprimento dos lados cout << "Informe o comprimento dos lados: "; cin >> comprimento; // e agora calculamos a apótema dos polígono double apotema = calcular_apotema(lados, comprimento); // e mostramos o resultado cout << "A apótema do polígono é: " << apotema << endl; cout << "\n" << endl; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } Ao executar este código C++ nós teremos o seguinte resultado: Informe a quantidade de lados: 5 Informe o comprimento dos lados: 4 A apótema do polígono é: 2.7527638409423476 |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de C++ |
Veja mais Dicas e truques de C++ |
Dicas e truques de outras linguagens |
Java - Como usar o método next() da interface Iterator do Java para obter o próximo elemento da iteração Java - Programação orientada a objetos em Java - Como criar e usar interfaces em seus programas Java |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |