INFO607
points.c
Go to the documentation of this file.
1#include <math.h>
2#include "points.h"
3
4
6{
7 p.x[ 0 ] -= q.x[ 0 ];
8 p.x[ 1 ] -= q.x[ 1 ];
9 return p;
10}
11
13{
14 p.x[ 0 ] += q.x[ 0 ];
15 p.x[ 1 ] += q.x[ 1 ];
16 return p;
17}
18
19Point Point_mul( double c, Point p )
20{
21 p.x[ 0 ] *= c;
22 p.x[ 1 ] *= c;
23 return p;
24}
25
26double Point_dot( Point p, Point q )
27{
28 return p.x[ 0 ] * q.x[ 0 ] + p.x[ 1 ] * q.x[ 1 ];
29}
30
31double Point_norm2( Point p )
32{
33 return Point_dot( p, p );
34}
35
36double Point_norm( Point p )
37{
38 return sqrt( Point_norm2( p ) );
39}
40
42{
43 return distance( p.x[ 0 ], p.x[ 1 ], q.x[ 0 ], q.x[ 1 ] );
44}
45
47{
48 return Point_mul( 1.0/Point_norm( p ), p );
49}
50
51static int compteur_distance = 0;
52
53double distance( double x1, double y1, double x2, double y2 )
54{
55 ++compteur_distance;
56 return sqrt( (x1-x2)*(x1-x2)+(y1-y2)*(y1-y2) );
57}
58
60{
61 compteur_distance = 0;
62}
63
65{
66 return compteur_distance;
67}
double Point_distance(Point p, Point q)
Definition points.c:41
Point Point_normalize(Point p)
Definition points.c:46
Point Point_mul(double c, Point p)
Definition points.c:19
double Point_norm2(Point p)
Definition points.c:31
double Point_dot(Point p, Point q)
Definition points.c:26
double distance(double x1, double y1, double x2, double y2)
Definition points.c:53
int getCompteurDistance(void)
Definition points.c:64
double Point_norm(Point p)
Definition points.c:36
void resetCompteurDistance(void)
Remet à zéro le compteur du nombre d'appel à distance.
Definition points.c:59
Point Point_sub(Point p, Point q)
Definition points.c:5
Point Point_add(Point p, Point q)
Definition points.c:12
Definition points.h:4
double x
Definition points.h:5