calcul.h
Go to the documentation of this file.
1 /***************************************************/
2 /* Last Revised:
3 $Id: calcul.h 4129 2007-08-21 23:16:24Z gerkey $
4 */
5 /***************************************************/
6 
7 #ifndef Calcul
8 #define Calcul
9 
10 #include <stdio.h>
11 #include <math.h>
12 #include "TData.h"
13 
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17 
18 /*
19  Este fichero tiene operaciones de transformacion de sistemas de referencia,
20  transformaciones de puntos entre sistemas, de paso de coordenadadas polares,
21  a cartesianas y de corte de segmentos
22 
23 */
24 
25 /* --------------------------------------------------------------------------------------- */
26 /* TRANSFORMACIONES DE PUNTO DE UN SISTEMA DE REFERENCIA A OTRO */
27 /* --------------------------------------------------------------------------------------- */
28 
29 /* --------------------------------------------------------------------------------------- */
30 /* transfor_directa_p */
31 /* .... Hace la transformacion directa de un punto a un sistema a otro */
32 /* .... In: (x,y) las coordenadas del punto, sistema es el sistema de referencia */
33 /* .... Out: en sol se devuelve las coordenadas del punto en el nuevo sistema */
34 
35 void transfor_directa_p ( float x, float y, Tsc *sistema, Tpf *sol );
36 
37 /* --------------------------------------------------------------------------------------- */
38 /* transfor_directa_p */
39 /* .... Hace la transformacion directa de un punto a un sistema a otro */
40 /* .... La diferencia es que aqui el punto de entrada es el (0,0) (optimiza la anterior) */
41 /* .... In: (x,y) las coordenadas del punto, sistema es el sistema de referencia */
42 /* .... Out: en sol se devuelve las coordenadas del punto en el nuevo sistema */
43 
44 void transfor_directa_pt0(float x, float y,
45  Tsc *sistema, Tpf *sol);
46 
47 /* --------------------------------------------------------------------------------------- */
48 /* transfor_inversa_p */
49 /* .... Hace la transformacion inversa de un punto a un sistema a otro */
50 /* .... In: (x,y) las coordenadas del punto, sistema es el sistema de referencia */
51 /* .... Out: en sol se devuelve las coordenadas del punto en el nuevo sistema */
52 
53 void transfor_inversa_p ( float x, float y, Tsc *sistema, Tpf *sol );
54 
55 /* --------------------------------------------------------------------------------------- */
56 /* TRANSFORMACIONES DE COMPOSICION E INVERSION DE SISTEMAS DE REFERENCIA */
57 /* --------------------------------------------------------------------------------------- */
58 
59 /* --------------------------------------------------------------------------------------- */
60 /* composicion_sis */
61 /* .... Realiza la composicion de sistemas de referencia en otro sistema */
62 /* .... In: compone sis1 y sis2 */
63 /* .... Out: la salida sisOut es el resultado de la composicion de los sistemas */
64 /* .... Nota: resulta muy importante el orden de las entradas en la composicion */
65 
66 void composicion_sis(Tsc *sis1,Tsc *sis2,Tsc *sisOut);
67 
68 /* --------------------------------------------------------------------------------------- */
69 /* inversion_sis */
70 /* .... Realiza la inversion de un sistema de referencia */
71 /* .... In: sisIn es el sistema a invertir */
72 /* .... Out: sisOut es el sistema invertido */
73 
74 void inversion_sis(Tsc *sisIn, Tsc *sisOut);
75 
76 /* --------------------------------------------------------------------------------------- */
77 /* TRANSFORMACIONES DE PUNTO DE UN SISTEMA DE REFERENCIA A OTRO */
78 /* --------------------------------------------------------------------------------------- */
79 
80 /* --------------------------------------------------------------------------------------- */
81 /* car2pol */
82 /* .... Transforma un punto de coordenadas cartesianas a polares */
83 /* .... In: el punto en coordenadas cartesianas a transformar */
84 /* .... Out: el punto salida en coordenadas polares */
85 
86 void car2pol(Tpf *in, Tpfp *out);
87 
88 /* --------------------------------------------------------------------------------------- */
89 /* pol2car */
90 /* .... Transforma un punto de coordenadas polares a cartesianas */
91 /* .... In: el punto entrada en coordenadas polares a transformar */
92 /* .... Out: el punto en coordenadas cartesianas transformado */
93 
94 void pol2car(Tpfp *in, Tpf *out);
95 
96 /* --------------------------------------------------------------------------------------- */
97 /* TRANSFORMACIONES DE PUNTO DE UN SISTEMA DE REFERENCIA A OTRO */
98 /* --------------------------------------------------------------------------------------- */
99 
100 /* --------------------------------------------------------------------------------------- */
101 /* corte_segmentos */
102 /* .... Calcula el punto de corte entre dos segmentos */
103 /* .... In: las coordenadas de los puntos extremos (x1,y1)-(x2,y2) y (x3,y3)-(x4,y4) */
104 /* .... Out: sol son las coordenadas del punto de corte. return --> 1 si hay corte. -->0 no */
105 
106 int corte_segmentos ( float x1, float y1, float x2, float y2,
107  float x3, float y3, float x4, float y4,
108  Tpf *sol );
109 
110 
111 /* Normaliza el angulo entre [-PI, PI] */
112 float NormalizarPI(float ang);
113 
114 #ifdef __cplusplus
115 }
116 #endif
117 
118 #endif
void pol2car(Tpfp *in, Tpf *out)
Definition: calcul.c:102
void transfor_directa_p(float x, float y, Tsc *sistema, Tpf *sol)
Definition: calcul.c:12
void car2pol(Tpf *in, Tpfp *out)
Definition: calcul.c:96
Definition: TData.h:26
void inversion_sis(Tsc *sisIn, Tsc *sisOut)
Definition: calcul.c:73
void composicion_sis(Tsc *sis1, Tsc *sis2, Tsc *sisOut)
Definition: calcul.c:84
float NormalizarPI(float ang)
Definition: calcul.c:68
Definition: TData.h:42
void transfor_inversa_p(float x, float y, Tsc *sistema, Tpf *sol)
Definition: calcul.c:46
int corte_segmentos(float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, Tpf *sol)
Definition: calcul.c:111
void transfor_directa_pt0(float x, float y, Tsc *sistema, Tpf *sol)
Definition: calcul.c:32
Definition: TData.h:32


csm
Author(s): Andrea Censi
autogenerated on Tue May 11 2021 02:18:23