poly.c 484 B

123456789101112131415161718192021222324
  1. #include <u.h>
  2. #include <libc.h>
  3. #include <draw.h>
  4. #include <memdraw.h>
  5. #include <memlayer.h>
  6. void
  7. mempoly(Memimage *dst, Point *vert, int nvert, int end0, int end1, int radius, Memimage *src, Point sp, int op)
  8. {
  9. int i, e0, e1;
  10. Point d;
  11. if(nvert < 2)
  12. return;
  13. d = subpt(sp, vert[0]);
  14. for(i=1; i<nvert; i++){
  15. e0 = e1 = Enddisc;
  16. if(i == 1)
  17. e0 = end0;
  18. if(i == nvert-1)
  19. e1 = end1;
  20. memline(dst, vert[i-1], vert[i], e0, e1, radius, src, addpt(d, vert[i-1]), op);
  21. }
  22. }