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 de la matrix en la ecuación . Más... | |
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 el vector del eje mayor. Más... | |
Pds::Vector | Pds::Ellipse::GetMinorVector (void) const |
Retorna el vector del eje menor. Más... | |
double | Pds::Ellipse::GetMajorAxis (void) const |
Retorna la distancia del eje mayor. Más... | |
double | Pds::Ellipse::GetMinorAxis (void) const |
Retorna la distancia del eje menor. Más... | |
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 el centroide 1 de la elipse. Más... | |
Pds::Vector | Pds::Ellipse::GetCentroid2 (void) const |
Retorna el centroide 2 de la elipse. Más... | |
double | Pds::Ellipse::GetArea (void) const |
Retorna el area de la elipse. Más... | |
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 agrupadas en las lineas de la matriz . Más... | |
static Pds::Ellipse | Pds::Ellipse::GetEllipseCovEigMethod (const Pds::Matrix &X) |
Aproxima uma elipse a partir de muestras agrupadas en las lineas de la matriz . Más... | |
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 do centroide . |
[in] | xo2 | Parámetro do centroide . |
[in] | angle | Angulo antihorario de rotacion de la elipse. |
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 de muestras. |
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 agrupadas en las lineas de la matriz . |
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 | ( | ) |