tesseract
5.0.0-alpha-619-ge9db
quadratc.h
Go to the documentation of this file.
1
/**********************************************************************
2
* File: quadratc.h (Formerly quadrtic.h)
3
* Description: Code for the QUAD_COEFFS class.
4
* Author: Ray Smith
5
* Created: Tue Oct 08 17:24:40 BST 1991
6
*
7
* (C) Copyright 1991, Hewlett-Packard Ltd.
8
** Licensed under the Apache License, Version 2.0 (the "License");
9
** you may not use this file except in compliance with the License.
10
** You may obtain a copy of the License at
11
** http://www.apache.org/licenses/LICENSE-2.0
12
** Unless required by applicable law or agreed to in writing, software
13
** distributed under the License is distributed on an "AS IS" BASIS,
14
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
** See the License for the specific language governing permissions and
16
** limitations under the License.
17
*
18
**********************************************************************/
19
20
#ifndef QUADRATC_H
21
#define QUADRATC_H
22
23
#include "
points.h
"
24
25
class
QUAD_COEFFS
26
{
27
public
:
28
QUAD_COEFFS
() =
default
;
29
QUAD_COEFFS
(
//constructor
30
double
xsq,
//coefficients
31
float
x,
32
float
constant) {
33
a
= xsq;
34
b
= x;
35
c
= constant;
36
}
37
38
float
y
(
//evaluate
39
float
x)
const
{
//at x
40
return
static_cast<float>((
a
* x +
b
) * x +
c
);
41
}
42
43
void
move
(
// reposition word
44
ICOORD
vec) {
// by vector
45
/************************************************************
46
y - q = a (x - p)^2 + b (x - p) + c
47
y - q = ax^2 - 2apx + ap^2 + bx - bp + c
48
y = ax^2 + (b - 2ap)x + (c - bp + ap^2 + q)
49
************************************************************/
50
int16_t p = vec.
x
();
51
int16_t q = vec.
y
();
52
53
c
= static_cast<float>(
c
-
b
* p +
a
* p * p + q);
54
b
= static_cast<float>(
b
- 2 *
a
* p);
55
}
56
57
double
a
;
//x squared
58
float
b
;
//x
59
float
c
;
//constant
60
private
:
61
};
62
#endif
QUAD_COEFFS::a
double a
Definition:
quadratc.h:71
QUAD_COEFFS::move
void move(ICOORD vec)
Definition:
quadratc.h:58
ICOORD
integer coordinate
Definition:
points.h:30
QUAD_COEFFS::y
float y(float x) const
Definition:
quadratc.h:53
QUAD_COEFFS::QUAD_COEFFS
QUAD_COEFFS()=default
ICOORD::x
int16_t x() const
access function
Definition:
points.h:51
QUAD_COEFFS
Definition:
quadratc.h:24
QUAD_COEFFS::c
float c
Definition:
quadratc.h:73
QUAD_COEFFS::b
float b
Definition:
quadratc.h:72
ICOORD::y
int16_t y() const
access_function
Definition:
points.h:55
points.h
src
ccstruct
quadratc.h
Generated on Thu Jan 30 2020 14:22:20 for tesseract by
1.8.16