summaryrefslogtreecommitdiff
path: root/tests/exec/bresenham.cpp
blob: c92c13f6938ea2d13640582c03fefd72d5fb5d10 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>

void plot(int y) {
  while (y-- > 0) std::cout << " ";
  std::cout << "X\n";
}

// suppose 0 <= y2 <= x2 (premier octant)
void bresenham(int x2, int y2) {
  int x = 0;
  int y = 0;
  int e = 2 * y2 - x2;
  for (x = 0; x <= x2; x++) {
    plot (y);
    if (e < 0)
      e = e + 2* y2;
    else {
      y++;
      e = e + 2 * (y2 - x2);
    }
  }
}

int main() {
  bresenham(10, 6);
}