edge.c 397 B

1234567891011121314151617181920212223242526272829
  1. #include "globals.h"
  2. #include "local_proto.h"
  3. int edge(int x0, int y0, int x1, int y1)
  4. {
  5. float m;
  6. float x;
  7. if (y0 == y1)
  8. return 0;
  9. x = x0;
  10. m = (float)(x0 - x1) / (float)(y0 - y1);
  11. if (y0 < y1)
  12. while (++y0 < y1) {
  13. x0 = (x += m) + .5;
  14. edge_point(x0, y0);
  15. }
  16. else
  17. while (--y0 > y1) {
  18. x0 = (x -= m) + .5;
  19. edge_point(x0, y0);
  20. }
  21. return 0;
  22. }