Guest User

Untitled

a guest
Aug 14th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.55 KB | None | 0 0
  1. Simplified Bresenham's line algorithm: What does it *exactly* do?
  2. int dx = Math.abs(x2 - x1);
  3. int dy = Math.abs(y2 - y1);
  4.  
  5. int sx = (x1 < x2) ? 1 : -1;
  6. int sy = (y1 < y2) ? 1 : -1;
  7.  
  8. int err = dx - dy;
  9.  
  10. while (true) {
  11. framebuffer.setPixel(x1, y1, Vec3.one);
  12.  
  13. if (x1 == x2 && y1 == y2) {
  14. break;
  15. }
  16.  
  17. int e2 = 2 * err;
  18.  
  19. if (e2 > -dy) {
  20. err = err - dy;
  21. x1 = x1 + sx;
  22. }
  23.  
  24. if (e2 < dx) {
  25. err = err + dx;
  26. y1 = y1 + sy;
  27. }
  28. }
  29.  
  30. err = err - dy;
  31. x1 = x1 + sx;
  32.  
  33. err = err + dx;
  34. y1 = y1 + sy;
Add Comment
Please, Sign In to add comment