![]() |
PavIn
Pavage et Interpolation barycentrique
|
Classe Paving. Plus de détails...
#include <Paving.hpp>
Fonctions membres publiques | |
Paving () | |
Constructeur par défaut. | |
Paving (const int &, const int &, const int &) | |
Constructeur avec bornes. Plus de détails... | |
Paving (const char *&f) | |
Constructeur avec nom de fichier. Plus de détails... | |
Paving (const std::vector< Point< N >> &) | |
Constructeur avec vecteur de points. Plus de détails... | |
~Paving () | |
Destructeur. | |
std::vector< Point< N > > | getPoints () |
Retourne tous les points sous forme d'un vector. | |
std::vector< Point< N > > | getTreatedPoints () |
Retourne tous les points traités sous forme d'un vector. | |
std::vector< std::vector< int > > | getSimplices () |
Retourne tous les simplexes. | |
bool | init () |
Initialise le Pavage. Plus de détails... | |
std::vector< Simplex< N > > | sliceHypercube (const std::vector< Point< N >> &hypercube, const Point< N > &mid) |
NON implémentée - Découpe un hypercube en simplexes Plus de détails... | |
bool | add (Point< N > &p) |
Ajoute un point incrémentalement au pavage. Plus de détails... | |
TYPEVAL | get (const Point< N > &p) |
Méthode centrale: calcule en fonction d'un point donné Plus de détails... | |
Simplex< N > | getSimplex (const Point< N > &p) const |
Renvoie le simplexe contenant le point. Plus de détails... | |
std::vector< Point< N > > | getPointsFromSimplex (const std::vector< int > &) const |
Renvoie les points d'un simplexe donné Plus de détails... | |
void | showPoints () const |
Afiche les points sur la sortie standard. | |
void | showTreatedPoints () const |
Afiche les points traités sur la sortie standard. | |
void | showSimplices () const |
Afiche les simplices sur la sortie standard. | |
void | draw () const |
Dessine le Pavage pour la fenêtre graphique. | |
void | show () const |
Affichge le Pavage dans une fenêtre graphique. | |
Classe Paving.
Classe de génération de pavage en N-Simplexes templatée sur la dimension de ses données.
Constructeur avec bornes.
Construit le pavage en insérant des points dont les coordonnées sont comprises entre les bornes min et max
n | le nombre de points voulu |
minv | la borne minimale |
maxv | la borne maximale |
Constructeur avec nom de fichier.
Construit le pavage en lisant les coordonnées dans le fichier
Le format suivant pour les données doit être respecté:
Les "nb" lignes suivantes:
f | le nom du fichier. |
Constructeur avec vecteur de points.
Construit le pavage avec les points donnés
v | le vecteur de points. |
Ajoute un point incrémentalement au pavage.
p | le point à ajouter au Pavage. |
Méthode centrale: calcule en fonction d'un point donné
p | le point entré par l'utilisateur. |
std::vector< Point< N > > Paving< N >::getPointsFromSimplex | ( | const std::vector< int > & | s | ) | const |
Renvoie les points d'un simplexe donné
s | un simplexe |
Renvoie le simplexe contenant le point.
p | un point. |
bool Paving< N >::init | ( | ) |
Initialise le Pavage.
L'initialisation du Pavage consiste à créer un N-Simplexe englobant. Pour cela, 3 étapes se suivent:
Pour créer un (N+1)-Simplexe englobant, on part des N+1 points (t, 0, 0 , ...), (0, t, 0, ...), (0, 0, t, ...) et du point (-t, -t, -t, ...) avec t initialisé à 0, et en l'agrandissant à l'aide d'un coefficient calculé à partir des points extremaux du nuage de points.
Ensuite on se ramène à un N-Simplexe en enlevant une dimension à tous les points et en retirant le point situé au centre du repère.
Enfin l'affinage se passe en deux étapes, la première consiste à diminuer t pour les points (t, 0, 0 , ...), (0, t, 0, ...), (0, 0, t, ...) tant que tous les points restent dans le simplexe. Sur le même principe, la deuxième étape ramène le point (-t, -t, -t, ...) en augmentant t.
Une fois ce processus terminé, un N-Simplexe englobant est obtenu, il est ajouté au pavage, et tous les points du nuage sont ajoutés dans ce simplexe, en choisissant à chaque itération, le point le plus proche du dernier point ajouté.
std::vector<Simplex<N> > Paving< N >::sliceHypercube | ( | const std::vector< Point< N >> & | hypercube, |
const Point< N > & | mid | ||
) |
NON implémentée - Découpe un hypercube en simplexes
hypercube | vecteur des points de l'hypercube |
mid | le milieu de cet hypercube |