31 lines
1.2 KiB
C
31 lines
1.2 KiB
C
|
#ifndef TRAJECTOIRE_H
|
||
|
#define TRAJECTOIRE_H
|
||
|
|
||
|
enum trajectoire_type_t{
|
||
|
TRAJECTOIRE_DROITE,
|
||
|
TRAJECTOIRE_CIRCULAIRE,
|
||
|
TRAJECTOIRE_BEZIER
|
||
|
};
|
||
|
|
||
|
struct point_xy_t{
|
||
|
double x, y;
|
||
|
};
|
||
|
|
||
|
struct trajectoire_t {
|
||
|
enum trajectoire_type_t type;
|
||
|
struct point_xy_t p1, p2, p3, p4;
|
||
|
double orientation_debut, orientation_fin;
|
||
|
double rayon, angle_debut_degre, angle_fin_degre;
|
||
|
double longueur;
|
||
|
};
|
||
|
|
||
|
double Trajectoire_get_longueur_mm(struct trajectoire_t * trajectoire);
|
||
|
struct point_xy_t Trajectoire_get_point(struct trajectoire_t * trajectoire, double abscisse);
|
||
|
double Trajectoire_avance(struct trajectoire_t * trajectoire, double abscisse, double distance_mm);
|
||
|
double distance_points(struct point_xy_t point, struct point_xy_t point_old);
|
||
|
void Trajectoire_circulaire(struct trajectoire_t * trajectoire, double centre_x, double centre_y, double angle_debut_degre, double angle_fin_degre, double rayon);
|
||
|
void Trajectoire_droite(struct trajectoire_t * trajectoire, double p1_x, double p1_y, double p2_x, double p2_y);
|
||
|
void Trajectoire_bezier(struct trajectoire_t * trajectoire, double p1_x, double p1_y, double p2_x, double p2_y, double p3_x, double p3_y, double p4_x, double p4_y);
|
||
|
|
||
|
#endif
|