11 void compute(
const std::tuple<int, int> &from,
const std::tuple<int, int> &to,
12 const std::tuple<int, int> &start) {
13 float scale_x = std::get<0>(to) / (float)std::get<0>(from);
14 float scale_y = std::get<1>(to) / (float)std::get<1>(from);
15 int start_x = std::get<0>(start);
16 int start_y = std::get<1>(start);
21 i2d[2] = -scale_x * start_x;
24 i2d[5] = -scale_y * start_y;
27 D = D != 0. ? double(1.) / D : double(0.);
28 double A11 =
i2d[4] * D, A22 =
i2d[0] * D, A12 = -
i2d[1] * D,
30 double b1 = -A11 *
i2d[2] - A12 *
i2d[5];
31 double b2 = -A21 *
i2d[2] - A22 *
i2d[5];