ImagePulser V5.2.4
Simplification des images prises avec une webcam
Chargement...
Recherche...
Aucune correspondance
Référence du fichier /Users/vasilisskarleas/Library/Mobile Documents/com~apple~CloudDocs/Documents/University Sorbonne/3rd year/S6/c-project-rob-3-eleves-gr-2-1/Imagination/contour.h

Déclaration des fonctions pour contour.c. Plus de détails...

#include <stdbool.h>
#include "geometry.h"
#include "image.h"
#include "sequence_point.h"
Graphe des dépendances par inclusion de contour.h:
Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

Aller au code source de ce fichier.

Structures de données

struct  Robot
 

Énumérations

enum  Orientation { Nord , Est , Sud , Ouest }
 

Fonctions

void init_robot (Robot *r, int x, int y, Orientation o)
 Initialise le robot à une position donnée avec une orientation spécifique.
 
void move_forward (Robot *r)
 Avance le robot d'une position dans la direction de son orientation actuelle.
 
void turn_left (Robot *r)
 Tourne le robot à gauche (changement d'orientation).
 
void turn_right (Robot *r)
 Tourne le robot à droite (changement d'orientation).
 
void position (Robot *r, int *x, int *y)
 Récupère la position actuelle du robot.
 
int abscissa (Robot *r)
 Récupère la coordonnée x de la position actuelle du robot.
 
int ordinate (Robot *r)
 Récupère la coordonnée y de la position actuelle du robot.
 
Orientation orient (Robot *r)
 Récupère l'orientation actuelle du robot.
 
void position_forward (Robot *r, int *x, int *y)
 Récupère la position de la case directement devant le robot.
 
void new_orientation (Robot *r, int x, int y, Image I)
 Calcule la nouvelle orientation du robot en fonction de son environnement immédiat.
 
Point find_departure_pixel (Image I)
 Trouve les coordonnées du premier pixel noir avec un voisin blanc au-dessus.
 
Image mask_image (Image I)
 Crée un masque de l'image mettant en évidence les pixels de départ pour les contours.
 
bool image_white (Image I)
 Vérifie si l'image est entièrement blanche.
 
Contour algo_contour (Image I, char *file_name, char *repository)
 Calcule et extrait les contours d'une image.
 
Liste_Contours algo_contours (Image I)
 Extrait tous les contours d'une image.
 
void pbm_contour_to_txt (Liste_Contours c, char *file_name, char *repository)
 Sauvegarde les contours extraits dans un file_input texte.
 
void contours_data (Liste_Contours c)
 Affiche les données des contours sur le terminal.
 
void contours_data_simplification (Liste_Contours c)
 Affiche les données des contours simplifiés sur le terminal.
 
void contours_data_bezier (Liste_Contours c)
 Affiche des informations sur les courbes de Bézier pour les contours sur le terminal.
 
void contours_data_bezier3 (Liste_Contours c)
 Affiche des informations sur les courbes de Bézier de degré 3 sur le terminal.
 
void create_postscript (Contour c, char *file_name, int height, int width)
 Génère un file_input EPS contenant la représentation graphique d'un contour en mode trait.
 
void create_postscript_fill (Contour c, char *file_name, int height, int width)
 Génère un file_input EPS contenant la représentation graphique d'un contour en mode remplissage.
 
void create_postscript_contours (Liste_Contours c, char *file_name, int height, int width, char *repository)
 Génère un file_input EPS pour une liste de contours donnés.
 
Contour simplification_douglas_peucker (Tableau_Point T, int j1, int j2, double d)
 Simplifie un contour en utilisant la méthode de simplification des segments de Douglas-Peucker.
 
Point calcul_ct_bezier2 (Bezier2 b2, double t)
 Calcule le point sur une courbe de Bézier de degré 2.
 
Point calcul_ct_bezier3 (Bezier3 b3, double t)
 Calcule le point sur une courbe de Bézier de degré 3.
 
Bezier3 conversion_bezier2_to_bezier3 (Bezier2 b2)
 Convertit une courbe de Bézier de degré 2 en une courbe de degré 3.
 
Bezier2 bezier2_approximation (Contour c, int j1, int j2)
 Approxime un contour par une courbe de Bézier de degré 2.
 
double distance_point_bezier2 (Point P1, Bezier2 b2, double ti)
 Calcule la distance entre un point et une courbe de Bézier de degré 2.
 
Contour simplification_douglas_peucker_bezier2 (Contour C, int j1, int j2, double d)
 Simplifie un contour par la méthode des courbes de Bézier de degré 2.
 
void create_postscript_contours_bezier2 (Liste_Contours c, char *file_name, int height, int width, char *repository)
 Crée un file_input EPS pour des courbes de Bézier de degré 2.
 
Bezier3 bezier3_approximation (Contour c, int j1, int j2)
 Approxime un contour par une courbe de Bézier de degré 3.
 
double distance_point_bezier3 (Point P1, Bezier3 b3, double ti)
 Calcule la distance entre un point et une courbe de Bézier de degré 3.
 
Contour simplification_douglas_peucker_bezier3 (Contour C, int j1, int j2, double d)
 Simplifie un contour par la méthode des courbes de Bézier de degré 3.
 
void create_postscript_contours_bezier3 (Liste_Contours c, char *file_name, int height, int width, char *repository)
 Crée un file_input EPS pour des courbes de Bézier de degré 3.
 

Description détaillée

Déclaration des fonctions pour contour.c.

Documentation du type de l'énumération

◆ Orientation

Valeurs énumérées
Nord 
Est 
Sud 
Ouest 

Documentation des fonctions

◆ abscissa()

int abscissa ( Robot * r)

Récupère la coordonnée x de la position actuelle du robot.

Paramètres
rPointeur vers le robot concerné.
Renvoie
Coordonnée x de la position du robot.

Récupère la coordonnée x de la position actuelle du robot.

Paramètres
rPointeur vers la structure Robot.
Renvoie
La position x actuelle du robot.

◆ algo_contour()

Contour algo_contour ( Image I,
char * file_name,
char * repository )

Calcule et extrait les contours d'une image.

Paramètres
IImage à traiter.
file_nameNom de file_input de sauvegarde des résultats.
repositoryChemin du dossier de sauvegarde.
Renvoie
Contour Premier contour trouvé dans l'image.

Calcule et extrait les contours d'une image.

Paramètres
IImage à partir de laquelle le contour est généré.
file_nameNom du file_input où les points du contour seront sauvegardés.
repositoryChemin du répertoire où le file_input sera stocké.
Renvoie
Contour Liste des points formant le contour.

Identifie le pixel de départ pour le contour, initialise un robot à cette position et trace le contour en suivant les changements d'orientation du robot.

◆ algo_contours()

Liste_Contours algo_contours ( Image I)

Extrait tous les contours d'une image.

Paramètres
IImage à traiter.
Renvoie
Liste_Contours Liste de tous les contours trouvés.

Extrait tous les contours d'une image.

Paramètres
IImage à analyser.
Renvoie
Liste_Contours Liste de tous les contours trouvés.

Cette fonction applique un masque pour isoler les contours dans l'image et les trace en utilisant un robot suivant un algorithme de suivi de bordure.

◆ bezier2_approximation()

Bezier2 bezier2_approximation ( Contour c,
int j1,
int j2 )

Approxime un contour par une courbe de Bézier de degré 2.

Paramètres
cContour à approximer.
j1Indice de début du contour.
j2Indice de fin du contour.
Renvoie
Bezier2 Courbe de Bézier de degré 2 résultante.

Approxime un contour par une courbe de Bézier de degré 2.

Paramètres
cContour initial.
j1Index de début du segment du contour.
j2Index de fin du segment du contour.
Renvoie
Bezier2 Courbe de Bézier de degré 2 approchée.

◆ bezier3_approximation()

Bezier3 bezier3_approximation ( Contour c,
int j1,
int j2 )

Approxime un contour par une courbe de Bézier de degré 3.

Paramètres
cContour à approximer.
j1Indice de début du contour.
j2Indice de fin du contour.
Renvoie
Bezier3 Courbe de Bézier de degré 3 résultante.

Approxime un contour par une courbe de Bézier de degré 3.

Paramètres
cContour à approximer.
j1Index de début du segment du contour.
j2Index de fin du segment du contour.
Renvoie
Bezier3 Courbe de Bézier de degré 3 résultante.

◆ calcul_ct_bezier2()

Point calcul_ct_bezier2 ( Bezier2 b2,
double t )

Calcule le point sur une courbe de Bézier de degré 2.

Paramètres
b2Courbe de Bézier de degré 2.
tParamètre t, 0 ≤ t ≤ 1.
Renvoie
Point Point sur la courbe.

Calcule le point sur une courbe de Bézier de degré 2.

Paramètres
b2Courbe de Bézier de degré 2.
tParamètre de la courbe (0 <= t <= 1).
Renvoie
Point sur la courbe de Bézier au paramètre t.

◆ calcul_ct_bezier3()

Point calcul_ct_bezier3 ( Bezier3 b3,
double t )

Calcule le point sur une courbe de Bézier de degré 3.

Paramètres
b3Courbe de Bézier de degré 3.
tParamètre t, 0 ≤ t ≤ 1.
Renvoie
Point Point sur la courbe.

Calcule le point sur une courbe de Bézier de degré 3.

Paramètres
b3Courbe de Bézier de degré 3.
tParamètre de la courbe (0 <= t <= 1).
Renvoie
Point sur la courbe de Bézier au paramètre t.

◆ contours_data()

void contours_data ( Liste_Contours c)

Affiche les données des contours sur le terminal.

Cette fonction imprime des informations détaillées sur chaque contour de la liste, telles que le nombre de points par contour, directement sur le terminal pour une référence rapide et le débogage.

Paramètres
cListe des contours dont les données doivent être affichées.

Affiche les données des contours sur le terminal.

Paramètres
cListe des contours à analyser.

Calcule et affiche le nombre total de segments formés entre les points de chaque contour.

◆ contours_data_bezier()

void contours_data_bezier ( Liste_Contours c)

Affiche des informations sur les courbes de Bézier pour les contours sur le terminal.

Spécifique à la tâche 7.1, cette fonction imprime des détails sur l'approximation des contours utilisant des courbes de Bézier de degré 2.

Paramètres
cListe des contours approximés à l'aide de courbes de Bézier.

Affiche des informations sur les courbes de Bézier pour les contours sur le terminal.

Paramètres
cListe de contours à évaluer.

Calcule et affiche le nombre de segments transformés en courbes de Bézier de degré 2.

◆ contours_data_bezier3()

void contours_data_bezier3 ( Liste_Contours c)

Affiche des informations sur les courbes de Bézier de degré 3 sur le terminal.

Spécifique à la tâche 7.2, cette fonction fournit des détails sur les contours approximés utilisant des courbes de Bézier de degré 3.

Paramètres
cListe des contours approximés à l'aide de courbes de Bézier.

Affiche des informations sur les courbes de Bézier de degré 3 sur le terminal.

Paramètres
cListe de contours à évaluer.

Calcule et affiche le nombre de segments transformés en courbes de Bézier de degré 3.

◆ contours_data_simplification()

void contours_data_simplification ( Liste_Contours c)

Affiche les données des contours simplifiés sur le terminal.

Destinée à être utilisée après l'application d'un algorithme de simplification aux contours, cette fonction imprime le nombre réduit de points par contour sur le terminal.

Paramètres
cListe des contours simplifiés.

Affiche les données des contours simplifiés sur le terminal.

Paramètres
cListe des contours à traiter.

Utilisé pour simplifier la représentation des contours, par exemple en réduisant le nombre de points.

◆ conversion_bezier2_to_bezier3()

Bezier3 conversion_bezier2_to_bezier3 ( Bezier2 b2)

Convertit une courbe de Bézier de degré 2 en une courbe de degré 3.

Paramètres
b2Courbe de Bézier de degré 2 à convertir.
Renvoie
Bezier3 Courbe de Bézier de degré 3 résultante.

Convertit une courbe de Bézier de degré 2 en une courbe de degré 3.

Paramètres
b2Courbe de Bézier de degré 2.
Renvoie
Bezier3 Courbe de Bézier de degré 3 résultante.

◆ create_postscript()

void create_postscript ( Contour c,
char * file_name,
int height,
int width )

Génère un file_input EPS contenant la représentation graphique d'un contour en mode trait.

Paramètres
cContour à représenter.
file_nameNom du file_input EPS.
heightHauteur de l'image.
widthLargeur de l'image.

Génère un file_input EPS contenant la représentation graphique d'un contour en mode trait.

Paramètres
cContour à représenter.
file_nameNom du file_input de sortie.
heightHauteur du file_input de sortie.
widthLargeur du file_input de sortie.

Génère un file_input EPS avec les points du contour connectés par des lignes droites.

◆ create_postscript_contours()

void create_postscript_contours ( Liste_Contours c,
char * file_name,
int height,
int width,
char * repository )

Génère un file_input EPS pour une liste de contours donnés.

Paramètres
cListe des contours.
file_nameNom du file_input.
heightHauteur de l'image.
widthLargeur de l'image.
repositoryEmplacement de sauvegarde.

Génère un file_input EPS pour une liste de contours donnés.

Paramètres
cListe des contours.
file_nameNom de base pour les file_inputs de sortie.
heightHauteur des file_inputs de sortie.
widthLargeur des file_inputs de sortie.
repositoryChemin du répertoire de sortie.

Chaque contour de la liste est transformé en un file_input .eps indépendant.

◆ create_postscript_contours_bezier2()

void create_postscript_contours_bezier2 ( Liste_Contours c,
char * file_name,
int height,
int width,
char * repository )

Crée un file_input EPS pour des courbes de Bézier de degré 2.

Paramètres
cListe des contours.
file_nameNom du file_input.
heightHauteur de l'image.
widthLargeur de l'image.
repositoryEmplacement de sauvegarde.

Crée un file_input EPS pour des courbes de Bézier de degré 2.

Paramètres
cListe des contours à traiter.
file_nameNom du file_input de sortie sans l'extension.
heightHauteur de la zone de dessin.
widthLargeur de la zone de dessin.
repositoryChemin du répertoire où le file_input sera sauvegardé.

◆ create_postscript_contours_bezier3()

void create_postscript_contours_bezier3 ( Liste_Contours c,
char * file_name,
int height,
int width,
char * repository )

Crée un file_input EPS pour des courbes de Bézier de degré 3.

Paramètres
cListe des contours.
file_nameNom du file_input.
heightHauteur de l'image.
widthLargeur de l'image.
repositoryEmplacement de sauvegarde.

Crée un file_input EPS pour des courbes de Bézier de degré 3.

Cette fonction génère un file_input EPS qui contient la représentation des contours d'une image, simplifiés par des courbes de Bézier de degré 3. Elle sauvegarde chaque contour en utilisant les courbes de Bézier pour une représentation vectorielle précise.

Paramètres
cListe des contours à traiter.
file_nameNom du file_input pour la sauvegarde.
heightHauteur de l'image originale.
widthLargeur de l'image originale.
repositoryChemin du dossier où le file_input sera sauvegardé.

◆ create_postscript_fill()

void create_postscript_fill ( Contour c,
char * file_name,
int height,
int width )

Génère un file_input EPS contenant la représentation graphique d'un contour en mode remplissage.

Paramètres
cContour à remplir.
file_nameNom du file_input EPS.
heightHauteur de l'image.
widthLargeur de l'image.

Génère un file_input EPS contenant la représentation graphique d'un contour en mode remplissage.

Paramètres
cContour à représenter.
file_nameNom du file_input de sortie.
heightHauteur du file_input de sortie.
widthLargeur du file_input de sortie.

Génère un file_input EPS avec les points du contour connectés par des lignes droites et le contour rempli.

◆ distance_point_bezier2()

double distance_point_bezier2 ( Point P1,
Bezier2 b2,
double ti )

Calcule la distance entre un point et une courbe de Bézier de degré 2.

Paramètres
P1Point à mesurer.
b2Courbe de Bézier de degré 2.
tiParamètre t, 0 ≤ t ≤ 1, pour le calcul sur la courbe.
Renvoie
double Distance calculée.

Calcule la distance entre un point et une courbe de Bézier de degré 2.

Paramètres
P1Point à partir duquel mesurer la distance.
b2Courbe de Bézier de degré 2.
tiParamètre de la courbe de Bézier indiquant le point spécifique à mesurer.
Renvoie
double Distance calculée.

◆ distance_point_bezier3()

double distance_point_bezier3 ( Point P1,
Bezier3 b3,
double ti )

Calcule la distance entre un point et une courbe de Bézier de degré 3.

Paramètres
P1Point à mesurer.
b3Courbe de Bézier de degré 3.
tiParamètre t, 0 ≤ t ≤ 1, pour le calcul sur la courbe.
Renvoie
double Distance calculée.

Calcule la distance entre un point et une courbe de Bézier de degré 3.

Paramètres
P1Point pour lequel calculer la distance.
b3Courbe de Bézier de degré 3.
tiValeur du paramètre t.
Renvoie
double Distance entre le point et la courbe.

◆ find_departure_pixel()

Point find_departure_pixel ( Image I)

Trouve les coordonnées du premier pixel noir avec un voisin blanc au-dessus.

Paramètres
IImage à examiner.
Renvoie
Point Coordonnées du pixel de départ trouvé.

Trouve les coordonnées du premier pixel noir avec un voisin blanc au-dessus.

Paramètres
IImage à analyser.
Renvoie
Point Coordonnées du pixel de départ trouvé dans l'image.

Cette fonction recherche le premier pixel noir ayant un voisin blanc dans l'image, ce qui indique le début d'un contour potentiel.

◆ image_white()

bool image_white ( Image I)

Vérifie si l'image est entièrement blanche.

Paramètres
IImage à vérifier.
Renvoie
true Si l'image est entièrement blanche, false sinon.

Vérifie si l'image est entièrement blanche.

Paramètres
IImage à vérifier.
Renvoie
bool Vrai si l'image est totalement blanche, faux sinon.

Cette fonction parcourt chaque pixel de l'image pour déterminer si tous sont blancs.

◆ init_robot()

void init_robot ( Robot * r,
int x,
int y,
Orientation o )

Initialise le robot à une position donnée avec une orientation spécifique.

Paramètres
rPointeur vers le robot à initialiser.
xPosition horizontale de départ du robot.
yPosition verticale de départ du robot.
oOrientation initiale du robot.

Initialise le robot à une position donnée avec une orientation spécifique.

Paramètres
rPointeur vers la structure Robot à initialiser.
xCoordonnée x de départ du robot.
yCoordonnée y de départ du robot.
oOrientation initiale du robot.

Cette fonction assigne la position et l'orientation initiales au robot. Elle prépare le robot à naviguer dans l'image selon les consignes qui lui seront ultérieurement fournies.

◆ mask_image()

Image mask_image ( Image I)

Crée un masque de l'image mettant en évidence les pixels de départ pour les contours.

Paramètres
IImage originale.
Renvoie
Image Masque créé.

Crée un masque de l'image mettant en évidence les pixels de départ pour les contours.

Paramètres
IImage originale à masquer.
Renvoie
Image Masque de l'image indiquant les départs de contours.

Cette fonction crée une image de masque indiquant les positions des pixels noirs qui sont des points de départ de contours.

◆ move_forward()

void move_forward ( Robot * r)

Avance le robot d'une position dans la direction de son orientation actuelle.

Paramètres
rPointeur vers le robot à déplacer.

Avance le robot d'une position dans la direction de son orientation actuelle.

Paramètres
rPointeur vers la structure Robot.

Cette fonction modifie les coordonnées du robot en fonction de son orientation actuelle. Elle permet au robot de progresser d'une unité dans la direction vers laquelle il est orienté.

◆ new_orientation()

void new_orientation ( Robot * r,
int x,
int y,
Image I )

Calcule la nouvelle orientation du robot en fonction de son environnement immédiat.

Paramètres
rPointeur vers le robot.
xCoordonnée x de la case à examiner.
yCoordonnée y de la case à examiner.
IImage dans laquelle le robot évolue.

Calcule la nouvelle orientation du robot en fonction de son environnement immédiat.

Paramètres
rPointeur vers le robot dont l'orientation doit être mise à jour.
xCoordonnée x du pixel actuel du robot.
yCoordonnée y du pixel actuel du robot.
IImage dans laquelle le robot opère.

Cette fonction ajuste l'orientation du robot en analysant les pixels voisins immédiats. Le robot pivote en fonction de la couleur des pixels adjacents pour suivre le contour dans l'image.

◆ ordinate()

int ordinate ( Robot * r)

Récupère la coordonnée y de la position actuelle du robot.

Paramètres
rPointeur vers le robot concerné.
Renvoie
Coordonnée y de la position du robot.

Récupère la coordonnée y de la position actuelle du robot.

Paramètres
rPointeur vers la structure Robot.
Renvoie
La position y actuelle du robot.

◆ orient()

Orientation orient ( Robot * r)

Récupère l'orientation actuelle du robot.

Paramètres
rPointeur vers le robot.
Renvoie
Orientation actuelle du robot.

Récupère l'orientation actuelle du robot.

Paramètres
rPointeur vers la structure Robot.
Renvoie
L'orientation actuelle du robot sous forme de valeur énumérée.

◆ pbm_contour_to_txt()

void pbm_contour_to_txt ( Liste_Contours c,
char * file_name,
char * repository )

Sauvegarde les contours extraits dans un file_input texte.

Paramètres
cListe des contours à sauvegarder.
file_nameNom du file_input.
repositoryChemin du dossier de sauvegarde.

Sauvegarde les contours extraits dans un file_input texte.

Paramètres
cListe des contours à enregistrer.
file_nameNom du file_input de sortie.
repositoryChemin du dossier où le file_input sera enregistré.

Crée un file_input texte pour chaque contour et y écrit les coordonnées des points.

◆ position()

void position ( Robot * r,
int * x,
int * y )

Récupère la position actuelle du robot.

Paramètres
rPointeur vers le robot dont la position est demandée.
xPointeur pour stocker la coordonnée x de la position.
yPointeur pour stocker la coordonnée y de la position.

Récupère la position actuelle du robot.

Paramètres
rPointeur vers la structure Robot.
xPointeur vers la variable où sera stockée la position x actuelle.
yPointeur vers la variable où sera stockée la position y actuelle.

Cette fonction permet d'accéder aux coordonnées actuelles du robot.

◆ position_forward()

void position_forward ( Robot * r,
int * x,
int * y )

Récupère la position de la case directement devant le robot.

Paramètres
rPointeur vers le robot.
xPointeur pour stocker la coordonnée x de la case devant.
yPointeur pour stocker la coordonnée y de la case devant.

Récupère la position de la case directement devant le robot.

Paramètres
rPointeur vers le robot dont on souhaite connaître la position devant.
xPointeur vers l'entier où stocker la coordonnée x du pixel devant le robot.
yPointeur vers l'entier où stocker la coordonnée y du pixel devant le robot.

Cette fonction calcule la position du pixel devant le robot en fonction de son orientation actuelle et met à jour les valeurs pointées par x et y avec les nouvelles coordonnées calculées.

◆ simplification_douglas_peucker()

Contour simplification_douglas_peucker ( Tableau_Point T,
int j1,
int j2,
double d )

Simplifie un contour en utilisant la méthode de simplification des segments de Douglas-Peucker.

Paramètres
TTableau de points du contour.
j1Indice de début du segment à simplifier.
j2Indice de fin du segment à simplifier.
dSeuil de distance pour la simplification.
Renvoie
Contour Contour simplifié.

Simplifie un contour en utilisant la méthode de simplification des segments de Douglas-Peucker.

Paramètres
TTableau de points du contour.
j1Index de début de l'intervalle à simplifier.
j2Index de fin de l'intervalle à simplifier.
dDistance seuil pour la simplification.
Renvoie
Contour Simplifié entre les indices j1 et j2.

Cet algorithme réduit le nombre de points dans un contour en préservant sa forme générale.

◆ simplification_douglas_peucker_bezier2()

Contour simplification_douglas_peucker_bezier2 ( Contour C,
int j1,
int j2,
double d )

Simplifie un contour par la méthode des courbes de Bézier de degré 2.

Paramètres
CContour à simplifier.
j1Indice de début du contour.
j2Indice de fin du contour.
dSeuil de distance pour la simplification.
Renvoie
Contour Contour simplifié.

Simplifie un contour par la méthode des courbes de Bézier de degré 2.

Paramètres
CContour à simplifier.
j1Indice de début de segment du contour.
j2Indice de fin de segment du contour.
dDistance seuil pour la simplification.
Renvoie
Contour Résultat de la simplification, potentiellement composé de plusieurs segments.

◆ simplification_douglas_peucker_bezier3()

Contour simplification_douglas_peucker_bezier3 ( Contour C,
int j1,
int j2,
double d )

Simplifie un contour par la méthode des courbes de Bézier de degré 3.

Paramètres
CContour à simplifier.
j1Indice de début du contour.
j2Indice de fin du contour.
dSeuil de distance pour la simplification.
Renvoie
Contour Contour simplifié.

Simplifie un contour par la méthode des courbes de Bézier de degré 3.

Cette fonction simplifie un contour en utilisant une approximation par une courbe de Bézier de degré 3, en appliquant l'algorithme de Douglas-Peucker pour calculer la distance entre les points du contour et la courbe de Bézier. Elle vise à réduire le nombre de points tout en conservant la forme générale du contour.

Paramètres
CContour à simplifier.
j1Indice de début du segment de contour à traiter.
j2Indice de fin du segment de contour à traiter.
dSeuil de distance pour la simplification.
Renvoie
Contour simplifié sous forme de points de Bézier de degré 3.

◆ turn_left()

void turn_left ( Robot * r)

Tourne le robot à gauche (changement d'orientation).

Paramètres
rPointeur vers le robot à tourner.

Tourne le robot à gauche (changement d'orientation).

Paramètres
rPointeur vers la structure Robot.

Cette fonction ajuste l'orientation du robot en tournant à gauche, ce qui modifie son orientation de 90 degrés dans le sens antihoraire.

◆ turn_right()

void turn_right ( Robot * r)

Tourne le robot à droite (changement d'orientation).

Paramètres
rPointeur vers le robot à tourner.

Tourne le robot à droite (changement d'orientation).

Paramètres
rPointeur vers la structure Robot.

Cette fonction ajuste l'orientation du robot en tournant à droite, ce qui modifie son orientation de 90 degrés dans le sens horaire.