22 #ifndef GEOMETRICPP_HPP
23 #define GEOMETRICPP_HPP
29 #include <type_traits>
59 const double_t
PI = 3.14159265358979323846;
81 template <
typename length>
82 typename std::enable_if<std::is_arithmetic<length>::value, length>::type
85 if (largest_diagonal < smallest_diagonal)
87 throw std::invalid_argument(
"largest_diagonal parameter cannot be smaller than smallest_diagonal parameter");
90 return sqrt((largest_diagonal / 2) * (largest_diagonal / 2) +
91 (smallest_diagonal / 2) * (smallest_diagonal / 2));
102 template <
typename T>
103 typename std::enable_if<std::is_arithmetic<T>::value, T>::type
106 return std::sqrt(a * a + b * b);
170 double_t
size()
const;
172 double_t
area()
const;
217 throw std::invalid_argument(
"Sides can't be equal, at least one needs to be different.");
221 std::pair<Geometricpp::GEOMETRIC_SIDE, Geometricpp::GEOMETRIC_SIDE>
size()
const;
223 double_t
area()
const;
259 explicit Rhombus(double_t side, double_t angle)
261 double_t angle_radians = angle *
PI / 180.0;
263 diagonal_a = side * sqrt(2 * (1 + cos(angle_radians)));
264 diagonal_b = side * sqrt(2 * (1 - cos(angle_radians)));
269 double_t
area()
const;
double_t perimeter() const
Calcula o perímetro do retângulo.
Definition: Quadrilaterals.cpp:94
Rectangle(GEOMETRIC_SIDE h, GEOMETRIC_SIDE w)
Construtor para a classe Rectangle.
Definition: Geometricpp.hpp:213
std::pair< Geometricpp::GEOMETRIC_SIDE, Geometricpp::GEOMETRIC_SIDE > size() const
Retorna as dimensões do retângulo.
Definition: Quadrilaterals.cpp:68
double_t diagonal() const
Calcula o comprimento da diagonal do retângulo.
Definition: Quadrilaterals.cpp:107
double_t area() const
Calcula a área do retângulo.
Definition: Quadrilaterals.cpp:81
Representa um retângulo definido por dois lados (altura e largura).
Definition: Geometricpp.hpp:195
double_t perimeter() const
Calcula o perímetro do losango.
Definition: Quadrilaterals.cpp:135
void show_diagonals() const
Exibe as diagonais do losango.
Definition: Quadrilaterals.cpp:186
double_t circumradius() const
double_t area() const
Calcula a área do losango.
Definition: Quadrilaterals.cpp:121
Rhombus(double_t side, double_t angle)
Construtor para a classe Rhombus.
Definition: Geometricpp.hpp:259
double_t height() const
Calcula a altura do losango.
Definition: Quadrilaterals.cpp:150
double_t inradius() const
Calcula o raio da circunferência inscrita no losango.
Definition: Quadrilaterals.cpp:169
Classe que representa um losango e fornece métodos para calcular suas propriedades geométricas.
Definition: Geometricpp.hpp:243
double_t perimeter() const
Calcula o perímetro do quadrado.
Definition: Quadrilaterals.cpp:38
double_t area() const
Calcula a área do quadrado.
Definition: Quadrilaterals.cpp:25
Square(GEOMETRIC_SIDE side_length)
Construtor para a classe Square.
Definition: Geometricpp.hpp:168
double_t diagonal() const
Calcula o comprimento da diagonal do quadrado.
Definition: Quadrilaterals.cpp:52
double_t size() const
Retorna o tamanho do lado do quadrado.
Definition: Quadrilaterals.cpp:12
Representa um quadrado definido por um lado.
Definition: Geometricpp.hpp:154
std::enable_if< std::is_arithmetic< T >::value, T >::type pitagoras(T a, T b)
Calcula a hipotenusa de um triângulo retângulo usando o Teorema de Pitágoras.
Definition: Geometricpp.hpp:104
std::enable_if< std::is_arithmetic< length >::value, length >::type pitagoras_diagonais(length largest_diagonal, length smallest_diagonal)
Calcula a diagonal de um retângulo usando o teorema de Pitágoras.
Definition: Geometricpp.hpp:83
double_t DIAGONAL
Tipo definido para as diagonais de objetos geométricos.
Definition: Geometricpp.hpp:50
const double_t PI
Armazena o valor constante de PI.
Definition: Geometricpp.hpp:59
double_t GEOMETRIC_SIDE
Tipo definido para lados de objetos geométricos planos.
Definition: Geometricpp.hpp:41
Biblioteca de geometria plana para o C++.
Definition: Geometricpp.hpp:33
O namespace Quadrilaterals é responsável por agrupar as funções que realizam cálculos relacionados a ...