Advertisement
Guest User

Untitled

a guest
Oct 9th, 2015
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.53 KB | None | 0 0
  1. double dx = x2 - x1;
  2. double dy = y2 - y1;
  3.  
  4. //to prevent divide by 0 error
  5. if (dx == 0) {
  6. int x = x1;
  7. int y = y1;
  8. for (int i = 0; i < dy; i++) {
  9. y += 1;
  10. framebuffer.setPixel((int)Math.round(x), (int)Math.round(y), Vec3.one);
  11. }
  12. }
  13. else if (dy == 0) {
  14. int x = x1;
  15. int y = y1;
  16. for (int i = 0; i < dx; i++) {
  17. x += 1;
  18. framebuffer.setPixel((int)Math.round(x), (int)Math.round(y), Vec3.one);
  19. }
  20. }
  21. else {
  22. double m = (double)(dy / dx); //slope
  23. if ((m <= 1 && m > 0) || (m < 0 && m >= -1)) {
  24. double x = (double)x1;
  25. double y = (double)y1;
  26. for (int i = 0; i < Math.abs(dx); i++) {
  27. x += 1;
  28. y += m;
  29. framebuffer.setPixel((int) Math.round(x), (int) Math.round(y), Vec3.one);
  30. }
  31. }
  32. else {
  33. double x = (double)x1;
  34. double y = (double)y1;
  35.  
  36. if (y2 < y1) {
  37. x = (double)x2;
  38. y = (double)y2;
  39. }
  40.  
  41. for (int i = 0; i < Math.abs(dy); i++) {
  42. x += (double)(1 / m);
  43. y += 1;
  44. framebuffer.setPixel((int) Math.round(x), (int) Math.round(y), Vec3.one);
  45. }
  46. }
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement