Clase que implementa una elipse en 2D. Más...
Namespaces | |
| namespace | Pds |
| Nombre de espacio para Pds (Procesamiento Digital de Senales) | |
Estructuras de datos | |
| class | Pds::Ellipse |
| La clase tipo Pds::Ellipse . Esta clase genera un objeto con dos parámetros xc1, xc2 y a. Para usar incluir Pds/Ellipse. Más... | |
Varios tipos de constructores | |
Crean una objeto Pds::Ellipse | |
| Pds::Ellipse::Ellipse (void) | |
| Crea un objeto vacio de tipo Pds::Ellipse. Más... | |
| Pds::Ellipse::Ellipse (double a, double b, double xo1, double xo2, double angle) | |
| Crea un objeto de tipo Pds::Ellipse. Más... | |
| Pds::Ellipse::Ellipse (const Pds::Vector &xc1, const Pds::Vector &xc2, double a) | |
| Crea un objeto de tipo Pds::Ellipse. Más... | |
| Pds::Ellipse::Ellipse (const Pds::Point2D &xc1, const Pds::Point2D &xc2, double a) | |
| Crea un objeto de tipo Pds::Ellipse. Más... | |
| Pds::Ellipse::Ellipse (double A, double B, double C, double D, double E, double F) | |
| Crea un objeto de tipo Pds::Ellipse. Más... | |
| Pds::Ellipse::Ellipse (const Pds::Ellipse &B) | |
| Crea un objeto de tipo Pds::Ellipse copiando datos desde otro. Más... | |
| Pds::Ellipse::~Ellipse () | |
Get samples | |
| Pds::Matrix | Pds::Ellipse::RandPerimeter (unsigned int L) const |
| Retorna, en las lineas de la matriz, muestras que describen el perímetro del elipse. Más... | |
| Pds::Matrix | Pds::Ellipse::RandSamples (unsigned int L) const |
| Retorna, en las lineas de la matriz, muestras que describen el elipse interno. Más... | |
Eval samples | |
| Pds::Vector | Pds::Ellipse::EvalSamples (const Pds::Matrix &X) const |
| Evalua cada linea | |
| double | Pds::Ellipse::Evaluate (double x1, double x2) const |
| Evalua un punto en la elipse. Más... | |
| double | Pds::Ellipse::Evaluate (const Pds::Point2D &p) const |
| Evalua un punto en la elipse. Más... | |
Get data | |
| Pds::Vector | Pds::Ellipse::GetMajorVector (void) const |
| Retorna | |
| Pds::Vector | Pds::Ellipse::GetMinorVector (void) const |
| Retorna | |
| double | Pds::Ellipse::GetMajorAxis (void) const |
| Retorna | |
| double | Pds::Ellipse::GetMinorAxis (void) const |
| Retorna | |
| double | Pds::Ellipse::GetAngle (void) const |
| Retorna el angulo del eje mayor. Más... | |
| Pds::Vector | Pds::Ellipse::GetCentroid (void) const |
| Retorna el centro de la elipse. Más... | |
| Pds::Vector | Pds::Ellipse::GetCentroid1 (void) const |
| Retorna | |
| Pds::Vector | Pds::Ellipse::GetCentroid2 (void) const |
| Retorna | |
| double | Pds::Ellipse::GetArea (void) const |
| Retorna el area | |
| bool | Pds::Ellipse::GetQuadraticForm (double &A, double &B, double &C, double &D, double &E, double &F) const |
| Retorna los parámetros de la forma cuadrática. Más... | |
Static variados Pds::Ellipse | |
| static Pds::Ellipse | Pds::Ellipse::GetEllipse (const Pds::Matrix &X, const std::string &Type="CovEig") |
| Aproxima uma elipse a partir de muestras | |
| static Pds::Ellipse | Pds::Ellipse::GetEllipseCovEigMethod (const Pds::Matrix &X) |
| Aproxima uma elipse a partir de muestras | |
Memory Pds::Ellipse | |
| Pds::Ellipse & | Pds::Ellipse::operator= (const Pds::Ellipse &B) |
| Copia en si mismo (A), un Shape B. Este operador es similar al método Copy(). Más... | |
| bool | Pds::Ellipse::Copy (const Pds::Ellipse &B) |
| Copia en si mismo (A), el contenido de un Shape B. Este método es similar a usar el operador = . Más... | |
| void | Pds::Ellipse::MakeEmpty (void) |
| Cera los datos internos. Más... | |
State Pds::Ellipse | |
| bool | Pds::Ellipse::IsEmpty (void) const |
| Verifica si la elipse es válido. Más... | |
| bool | Pds::Ellipse::IsInside (double x1, double x2) const |
| Verifica si un elemento esta en la elipse o el perímetro. Más... | |
| bool | Pds::Ellipse::IsInside (const Pds::Point2D &p) const |
| Verifica si un elemento esta en la elipse o el perímetro. Más... | |
Mostrando datos | |
| void | Pds::Ellipse::Print (std::string str="") const |
| Muestra en pantalla el contenido de Pds::Ellipse, elementos separados por tabulador. Más... | |
Métodos para exportar e importar Json con Pds::Ellipse. | |
Herramientas genéricas que pueden ser usadas desde Pds::Ellipse | |
| Pds::Json | Pds::Ellipse::ToJson (void) const |
| Retorna un objeto Pds::Json con el contenido del objeto. Más... | |
| bool | Pds::Ellipse::FromJson (const Pds::Json &J) |
| Lee un objeto Pds::Json busca la etiqueta "Ellipse" y lo carga. El objeto debe tener al menos los siguientes dados. Más... | |
Operadores no miembros de Ellipse | |
Descripcion de algunos operadores habilitados a trabajar con Pds::Ellipse. | |
| std::ostream & | operator<< (std::ostream &out, const Pds::Ellipse &z) |
| Retorna el contenido del objeto por la salida estándar. Más... | |
Clase que implementa una elipse en 2D.
| Pds::Ellipse::Ellipse | ( | void | ) |
Crea un objeto vacio de tipo Pds::Ellipse.
| Pds::Ellipse::Ellipse | ( | double | a, |
| double | b, | ||
| double | xo1, | ||
| double | xo2, | ||
| double | angle | ||
| ) |
Crea un objeto de tipo Pds::Ellipse.
La elipse se define por
,
y
, donde:
| [in] | a | Major axis. |
| [in] | b | Minor axis. |
| [in] | xo1 | Parámetro |
| [in] | xo2 | Parámetro |
| [in] | angle | Angulo |
| Pds::Ellipse::Ellipse | ( | const Pds::Vector & | xc1, |
| const Pds::Vector & | xc2, | ||
| double | a | ||
| ) |
Crea un objeto de tipo Pds::Ellipse.
La elipse se define por
,
y
, donde:
| [in] | xc1 | Centroide |
| [in] | xc2 | Centroide |
| [in] | a | Major axis. |
| Pds::Ellipse::Ellipse | ( | const Pds::Point2D & | xc1, |
| const Pds::Point2D & | xc2, | ||
| double | a | ||
| ) |
Crea un objeto de tipo Pds::Ellipse.
La elipse se define por
,
y
, donde:
| [in] | xc1 | Centroide |
| [in] | xc2 | Centroide |
| [in] | a | Major axis. |
| Pds::Ellipse::Ellipse | ( | double | A, |
| double | B, | ||
| double | C, | ||
| double | D, | ||
| double | E, | ||
| double | F | ||
| ) |
Crea un objeto de tipo Pds::Ellipse.
La elipse se define por
,
,
y
, entonces:
| [in] | A | Parámetro A. |
| [in] | B | Parámetro B. |
| [in] | C | Parámetro C. |
| [in] | D | Parámetro D. |
| [in] | E | Parámetro E. |
| [in] | F | Parámetro F. |
| Pds::Ellipse::Ellipse | ( | const Pds::Ellipse & | B | ) |
Crea un objeto de tipo Pds::Ellipse copiando datos desde otro.
| [in] | B | Ellipse a copiar. |
| Pds::Matrix Pds::Ellipse::RandPerimeter | ( | unsigned int | L | ) | const |
Retorna, en las lineas de la matriz, muestras que describen el perímetro del elipse.
Sea
una variable aleatoria uniformente distribuida entre
y
,
el vector mayor,
el vector menor y
el centroide de la elipse, entonces un punto aleatorio
del perímetro es definido como:
| [in] | L | Número de muestras |
| Pds::Matrix Pds::Ellipse::RandSamples | ( | unsigned int | L | ) | const |
Retorna, en las lineas de la matriz, muestras que describen el elipse interno.
| [in] | L | Número de muestras |
| Pds::Vector Pds::Ellipse::EvalSamples | ( | const Pds::Matrix & | X | ) | const |
Evalua cada linea
de la matrix
en la ecuación
.
| [in] | X | Matriz |
| double Pds::Ellipse::Evaluate | ( | double | x1, |
| double | x2 | ||
| ) | const |
Evalua un punto en la elipse.
calcula la forma cuadrática GetQuadraticForm() y verifica si:
| [in] | x1 | Primera variable de p=(x1,x2). |
| [in] | x2 | Segunda variable de p=(x1,x2). |
| double Pds::Ellipse::Evaluate | ( | const Pds::Point2D & | p | ) | const |
Evalua un punto en la elipse.
calcula la forma cuadrática GetQuadraticForm() y verifica si:
| [in] | p | Variable p=(x1,x2). |
| Pds::Vector Pds::Ellipse::GetMajorVector | ( | void | ) | const |
Retorna
el vector del eje mayor.
| Pds::Vector Pds::Ellipse::GetMinorVector | ( | void | ) | const |
Retorna
el vector del eje menor.
| double Pds::Ellipse::GetMajorAxis | ( | void | ) | const |
Retorna
la distancia del eje mayor.
| double Pds::Ellipse::GetMinorAxis | ( | void | ) | const |
Retorna
la distancia del eje menor.
| double Pds::Ellipse::GetAngle | ( | void | ) | const |
Retorna el angulo del eje mayor.
| Pds::Vector Pds::Ellipse::GetCentroid | ( | void | ) | const |
Retorna el centro de la elipse.
| Pds::Vector Pds::Ellipse::GetCentroid1 | ( | void | ) | const |
Retorna
el centroide 1 de la elipse.
| Pds::Vector Pds::Ellipse::GetCentroid2 | ( | void | ) | const |
Retorna
el centroide 2 de la elipse.
| double Pds::Ellipse::GetArea | ( | void | ) | const |
Retorna el area
de la elipse.
| bool Pds::Ellipse::GetQuadraticForm | ( | double & | A, |
| double & | B, | ||
| double & | C, | ||
| double & | D, | ||
| double & | E, | ||
| double & | F | ||
| ) | const |
Retorna los parámetros de la forma cuadrática.
| [out] | A | Parámetro A. |
| [out] | B | Parámetro B. |
| [out] | C | Parámetro C. |
| [out] | D | Parámetro D. |
| [out] | E | Parámetro E. |
| [out] | F | Parámetro F. |
|
static |
Aproxima uma elipse a partir de muestras
agrupadas en las lineas de la matriz
.
| [in] | X | Muestras |
| [in] | Type | Tipo de cálculo. CovEig: usa GetEllipseCovEigMethod(); agrupadas en las lineas de la matriz |
|
static |
Aproxima uma elipse a partir de muestras
agrupadas en las lineas de la matriz
.
Calculando Eigenvalues y Eigenvector:
Con los eigenvalues en orden ascendente
definimos a elipse
Calculamos a función
con la forma cuadrática de la elipse:
Calculamos
Luego afirmamos que la elipse que envuelve a los puntos es la que posee la ecuación cuadrática
:
| [in] | X | Muestras |
| Pds::Ellipse & Pds::Ellipse::operator= | ( | const Pds::Ellipse & | B | ) |
Copia en si mismo (A), un Shape B. Este operador es similar al método Copy().
Cuando acontece:
Cuando NO acontece:
| [in] | B | El Shape a copiar |
| bool Pds::Ellipse::Copy | ( | const Pds::Ellipse & | B | ) |
| void Pds::Ellipse::MakeEmpty | ( | void | ) |
Cera los datos internos.
.
| bool Pds::Ellipse::IsEmpty | ( | void | ) | const |
Verifica si la elipse es válido.
| bool Pds::Ellipse::IsInside | ( | double | x1, |
| double | x2 | ||
| ) | const |
Verifica si un elemento esta en la elipse o el perímetro.
calcula la forma cuadrática GetQuadraticForm() y verifica si:
| [in] | x1 | Primera variable de p=(x1,x2). |
| [in] | x2 | Segunda variable de p=(x1,x2). |
| bool Pds::Ellipse::IsInside | ( | const Pds::Point2D & | p | ) | const |
Verifica si un elemento esta en la elipse o el perímetro.
calcula la forma cuadrática GetQuadraticForm() y verifica si:
| [in] | p | Variable p=(x1,x2). |
| void Pds::Ellipse::Print | ( | std::string | str = "" | ) | const |
Muestra en pantalla el contenido de Pds::Ellipse, elementos separados por tabulador.
| [in] | str | Texto a mostrar antes de imprimir el contenido. |
| Pds::Json Pds::Ellipse::ToJson | ( | void | ) | const |
Retorna un objeto Pds::Json con el contenido del objeto.
Por exemplo:
| bool Pds::Ellipse::FromJson | ( | const Pds::Json & | J | ) |
Lee un objeto Pds::Json busca la etiqueta "Ellipse" y lo carga. El objeto debe tener al menos los siguientes dados.
| std::ostream & operator<< | ( | std::ostream & | out, |
| const Pds::Ellipse & | z | ||
| ) |
Retorna el contenido del objeto por la salida estándar.
| [in] | out | La salida |
| [in] | z | La matriz a mostrar |
| Pds::Ellipse::~Ellipse | ( | ) |
1.9.4