Home | Develop | Download | Contact
Circle.hpp
1/*
2 * Circle.hpp
3 *
4 * Copyright 2018 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_CIRCLE_HPP__
33#define __PDS_CIRCLE_HPP__
34
35#include <string>
36#include <Pds/Matrix>
37
46namespace Pds{
47
55class Circle
56{
57
58private:
59 /* Parámetro xc1 del centro del círculo (xc1,xc2).*/
60 double xc1;
61
62 /* Parámetro xc2 del centro del círculo (xc1,xc2).*/
63 double xc2;
64
65 /* Radio del círculo.*/
66 double r;
67
68public:
69
78 Circle(void);
79
90 Circle(double xc1,double xc2,double r);
91
102 Circle(const Pds::Vector &xc,double r);
103
114 Circle(const Pds::Point2D &xc,double r);
115
123
124
126
131public:
132
146 Pds::Matrix RandPerimeter(unsigned int L) const;
147
156 Pds::Matrix RandSamples(unsigned int L) const;
157
162public:
163
180
181
193 double Evaluate(double x1,double x2) const;
194
195
206 double Evaluate(const Pds::Point2D &p) const;
207
212public:
213
224 double GetRadius(void) const;
225
226
234
235
242 double GetArea(void) const;
247public:
248
275
286 bool Copy(const Pds::Circle &B);
287
293 void MakeEmpty(void);
294
299public:
300
310 bool IsEmpty(void) const;
311
312
324 bool IsInside(double x1,double x2) const;
325
326
337 bool IsInside(const Pds::Point2D &p) const;
338
343public:
344
356 void Print(std::string str="") const;
357
362public:
363
385 Pds::Json ToJson(void) const;
386
387
404 bool FromJson(const Pds::Json &J) ;
405
411}; // Class Circle
412
413} // namespace Pds
414
415
431 std::ostream& operator<<(std::ostream &out,const Pds::Circle &z);
432
433
443#endif
444
La clase tipo Pds::Circle . Esta clase genera un objeto con dos parámetros xc1, xc2 y r....
Definition: Circle.hpp:56
double xc2
Definition: Circle.hpp:63
double r
Definition: Circle.hpp:66
double xc1
Definition: Circle.hpp:60
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::Matrix . Esta clase genera una matriz de Nlin lineas y Ncol columnas....
Definition: Matrix.hpp:96
La clase tipo Pds::Point2D . Esta clase genera un objeto con dos parametros X y Y....
Definition: Point2D.hpp:59
La clase tipo Pds::Vector . Esta clase genera una matriz de Nlin lineas y 1 columna....
Definition: Vector.hpp:80
double Evaluate(double x1, double x2) const
Evalua un punto (x1,x2) en el circulo f(x1,x2).
Circle(double xc1, double xc2, double r)
Crea un objeto de tipo Pds::Circle.
Circle(const Pds::Circle &B)
Crea un objeto de tipo Pds::Circle copiando datos desde otra.
void Print(std::string str="") const
Muestra en pantalla el contenido de Pds::Circle, elementos separados por tabulador.
Pds::Circle & operator=(const Pds::Circle &B)
Copia en si mismo (A), un Shape B. Este operador es similar al método Copy().
bool FromJson(const Pds::Json &J)
Lee un objeto Pds::Json busca la etiqueta "Circle" y lo carga. El objeto debe tener al menos los sigu...
void MakeEmpty(void)
Cera los datos internos.
Pds::Vector GetCentroid(void) const
Retorna el centroide del círculo.
Pds::Vector EvalSamples(const Pds::Matrix &X) const
Evalua cada linea de la matrix en la ecuación .
Pds::Matrix RandPerimeter(unsigned int L) const
Retorna, en las lineas de la matriz, muestras que describen el perímetro del círculo.
bool IsInside(double x1, double x2) const
Verifica si un elemento esta en el círculo o la circunferencia.
double GetRadius(void) const
Retorna el radio del círculo.
Circle(const Pds::Vector &xc, double r)
Crea un objeto de tipo Pds::Circle.
std::ostream & operator<<(std::ostream &out, const Pds::Circle &z)
Retorna el contenido del objeto por la salida estándar.
double GetArea(void) const
Retorna el area del círculo.
bool IsInside(const Pds::Point2D &p) const
Verifica si un elemento esta en el círculo o la circunferencia.
double Evaluate(const Pds::Point2D &p) const
Evalua un punto p=(x1,x2) en el circulo f(x1,x2).
bool Copy(const Pds::Circle &B)
Copia en si mismo (A), el contenido de un Shape B. Este método es similar a usar el operador = .
Circle(const Pds::Point2D &xc, double r)
Crea un objeto de tipo Pds::Circle.
Circle(void)
Crea un objeto de tipo Pds::Circle.
Pds::Matrix RandSamples(unsigned int L) const
Retorna, en las lineas de la matriz, muestras que describen el círculo interno.
Pds::Json ToJson(void) const
Retorna un objeto Pds::Json con el contenido del objeto.
bool IsEmpty(void) const
Verifica si el círculo es válido.
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