![]() |
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 |
1.8.11