tesseract  4.0.0-1-g2a2b
fpoint.h File Reference
#include <cmath>
#include <cstdio>
#include "host.h"

Go to the source code of this file.

Classes

struct  FPOINT
 

Macros

#define XDelta(A, B)   ((B).x - (A).x)
 
#define YDelta(A, B)   ((B).y - (A).y)
 
#define SlopeFrom(A, B)   (YDelta(A, B) / XDelta(A, B))
 
#define AngleFrom(A, B)   (atan2((double)YDelta(A, B), (double)XDelta(A, B)))
 
#define XIntersectionOf(A, B, X)   (SlopeFrom(A, B) * ((X)-A.x) + A.y)
 

Typedefs

using FVECTOR = FPOINT
 

Functions

float DistanceBetween (FPOINT A, FPOINT B)
 
float NormalizedAngleFrom (FPOINT *Point1, FPOINT *Point2, float FullScale)
 

Macro Definition Documentation

◆ AngleFrom

#define AngleFrom (   A,
 
)    (atan2((double)YDelta(A, B), (double)XDelta(A, B)))

Definition at line 42 of file fpoint.h.

◆ SlopeFrom

#define SlopeFrom (   A,
 
)    (YDelta(A, B) / XDelta(A, B))

Definition at line 41 of file fpoint.h.

◆ XDelta

#define XDelta (   A,
 
)    ((B).x - (A).x)

Macros

Definition at line 39 of file fpoint.h.

◆ XIntersectionOf

#define XIntersectionOf (   A,
  B,
 
)    (SlopeFrom(A, B) * ((X)-A.x) + A.y)

Definition at line 44 of file fpoint.h.

◆ YDelta

#define YDelta (   A,
 
)    ((B).y - (A).y)

Definition at line 40 of file fpoint.h.

Typedef Documentation

◆ FVECTOR

using FVECTOR = FPOINT

Definition at line 33 of file fpoint.h.

Function Documentation

◆ DistanceBetween()

float DistanceBetween ( FPOINT  A,
FPOINT  B 
)

Definition at line 28 of file fpoint.cpp.

28  {
29  const double xd = XDelta(A, B);
30  const double yd = YDelta(A, B);
31  return sqrt(static_cast<double>(xd * xd + yd * yd));
32 }
#define XDelta(A, B)
Definition: fpoint.h:39
#define YDelta(A, B)
Definition: fpoint.h:40

◆ NormalizedAngleFrom()

float NormalizedAngleFrom ( FPOINT Point1,
FPOINT Point2,
float  FullScale 
)

Return the angle from Point1 to Point2 normalized to lie in the range 0 to FullScale (where FullScale corresponds to 2*pi or 360 degrees).

Parameters
Point1points to compute angle between
Point2points to compute angle between
FullScalevalue to associate with 2*pi
Returns
none
Note
Globals: none

Definition at line 44 of file fpoint.cpp.

44  {
45  float NumRadsInCircle = 2.0 * M_PI;
46 
47  float Angle = AngleFrom (*Point1, *Point2);
48  if (Angle < 0.0)
49  Angle += NumRadsInCircle;
50  Angle *= FullScale / NumRadsInCircle;
51  if (Angle < 0.0 || Angle >= FullScale)
52  Angle = 0.0;
53  return (Angle);
54 }
#define AngleFrom(A, B)
Definition: fpoint.h:42