Home | Develop | Download | Contact
Line2D.hpp
1/*
2 * Line2D.hpp
3 *
4 * Copyright 2021 Fernando Pujaico Rivera <fernando.pujaico.rivera@gmail.com>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19 * MA 02110-1301, USA.
20 *
21 */
22
32#ifndef __PDS_LINE2D_HPP__
33#define __PDS_LINE2D_HPP__
34
35#include <string>
36#include <Pds/Matrix>
37
46namespace Pds{
47
55class Line2D
56{
57
58private:
59 /* Ángulo de la distancia perpendicular a la linea.*/
60 double theta;
61
62 /* Distancia perpendicular a la linea.*/
63 double rho;
64
65public:
66
75 Line2D(void);
76
87 Line2D(double theta,double rho);
88
110 Line2D(double a,double b,double c);
111
112
120
121
123
128public:
129
150 Pds::Matrix RandSamplesAngle(unsigned int L,double alpha1,double alpha2) const;
156public:
157
174
188
193public:
194
207 double GetRho(void) const;
208
216 double GetTheta(void) const;
217
237 bool GetLinearForm( double &a,double &b,double &c) const;
242public:
243
258 static Pds::Line2D GetLine(const Pds::Matrix &X,const std::string &Type="CovEig");
259
313
318public:
319
346
357 bool Copy(const Pds::Line2D &B);
358
364 void MakeEmpty(void);
365
370 bool IsEmpty(void) const;
371
376public:
377
389 void Print(std::string str="") const;
390
395public:
396
417 Pds::Json ToJson(void) const;
418
419
435 bool FromJson(const Pds::Json &J) ;
436
444}; // Class Line2D
445
446} // namespace Pds
447
448
464 std::ostream& operator<<(std::ostream &out,const Pds::Line2D &z);
465
466
476#endif
477
La clase tipo Pds::Json . Esta clase genera una estructura capaz de almacenar datos del formato Json....
Definition: Json.hpp:63
La clase tipo Pds::Line2D . Esta clase genera un objeto con dos parámetros theta y rho....
Definition: Line2D.hpp:56
double theta
Definition: Line2D.hpp:60
double rho
Definition: Line2D.hpp:63
La clase tipo Pds::Matrix . Esta clase genera una matriz de Nlin lineas y Ncol columnas....
Definition: Matrix.hpp:96
La clase tipo Pds::Vector . Esta clase genera una matriz de Nlin lineas y 1 columna....
Definition: Vector.hpp:80
Pds::Line2D & operator=(const Pds::Line2D &B)
Copia en si mismo (A), un Shape B. Este operador es similar al método Copy().
static Pds::Line2D GetLineCovEigMethod(const Pds::Matrix &X)
Aproxima uma line a partir de muestras agrupadas en las lineas de la matriz .
Pds::Vector EvalSamples(const Pds::Matrix &X) const
Evalua cada linea de la matrix en la ecuación .
double GetRho(void) const
Retorna la distancia perpendicular a la linea.
double GetTheta(void) const
Retorna el ángulo de la distancia perpendicular a la linea.
void MakeEmpty(void)
Cera los datos internos.
Pds::Vector DistanceTo(const Pds::Matrix &X) const
Evalua la distancia mínima de cada punto , en las lineas de la matrix , a la linea.
std::ostream & operator<<(std::ostream &out, const Pds::Line2D &z)
Retorna el contenido del objeto por la salida estándar.
bool IsEmpty(void) const
Verifica si la línea es válida.
bool FromJson(const Pds::Json &J)
Lee un objeto Pds::Json busca la etiqueta "Line2D" y lo carga. El objeto debe tener al menos los sigu...
void Print(std::string str="") const
Muestra en pantalla el contenido de Pds::Line2D, elementos separados por tabulador.
Pds::Matrix RandSamplesAngle(unsigned int L, double alpha1, double alpha2) const
Retorna, en las lineas de la matriz, muestras que describen la linea.
Line2D(const Pds::Line2D &B)
Crea un objeto de tipo Pds::Line2D copiando datos desde otra.
bool GetLinearForm(double &a, double &b, double &c) const
Retorna los parámetros de la forma linear.
Line2D(double theta, double rho)
Crea un objeto de tipo Pds::Line2D.
Line2D(void)
Crea un objeto de tipo Pds::Line2D.
Line2D(double a, double b, double c)
Crea un objeto de tipo Pds::Line2D.
Pds::Json ToJson(void) const
Retorna un objeto Pds::Json con el contenido del objeto.
bool Copy(const Pds::Line2D &B)
Copia en si mismo (A), el contenido de un Shape B. Este método es similar a usar el operador = .
static Pds::Line2D GetLine(const Pds::Matrix &X, const std::string &Type="CovEig")
Aproxima uma line a partir de muestras agrupadas en las lineas de la matriz .
Nombre de espacio para Pds (Procesamiento Digital de Senales)
Definition: AbstractRV.hpp:42

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed