Advertisement
Guest User

окружность и эллепс

a guest
Apr 19th, 2014
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. void circle(HDC hdc, int xC, int yC)
  2. {
  3. int x=0;
  4. int y=r;
  5. int d=1-r;
  6. int delta1=3;
  7. int delta2=-2*r+5;
  8.  
  9. while(x<y)
  10. {
  11. SetPixel(hdc, xC+x, y+yC, 0);
  12. SetPixel(hdc, xC-x, y+yC, 0);
  13. SetPixel(hdc, xC-x, -y+yC, 0);
  14. SetPixel(hdc, xC+x, -y+yC, 0);
  15.  
  16. SetPixel(hdc, xC+y, x+yC, 0);
  17. SetPixel(hdc, xC-y, x+yC, 0);
  18. SetPixel(hdc, xC-y, -x+yC, 0);
  19. SetPixel(hdc, xC+y, -x+yC, 0);
  20. if(d<0)
  21. {
  22. d+=delta1;
  23. delta1+=2;
  24. delta2+=2;
  25. x++;
  26. }
  27. else
  28. {
  29. d+=delta2;
  30. delta2+=4;
  31. delta1+=2;
  32. x++;
  33. y--;
  34. }
  35. }
  36. }
  37.  
  38. void ellipse(HDC hdc, int x0, int y0)
  39. {
  40. int a2 = width * width;
  41. int b2 = height * height;
  42. int fa2 = 4 * a2, fb2 = 4 * b2;
  43. int x, y, sigma;
  44.  
  45. // ()
  46. for (x = 0, y = height, sigma = 2*b2+a2*(1-2*height); b2*x <= a2*y; x++)
  47. {
  48. /* if (sigma >= 0)
  49. {
  50. sigma += fa2 * (1 - y);
  51. y--;
  52. }*/
  53. y--;
  54. sigma += b2 * ((4 * x) + 6);
  55. SetPixel (hdc,x0 + x, y0 + y,0);
  56. SetPixel (hdc,x0 - x, y0 + y,0);
  57. SetPixel (hdc,x0 + x, y0 - y,0);
  58. SetPixel (hdc,x0 - x, y0 - y,0);
  59. }
  60.  
  61. //
  62. for (x = width, y = 0, sigma = 2*a2+b2*(1-2*width); a2*y <= b2*x; y++)
  63. {
  64. if (sigma >= 0)
  65. {
  66. sigma += fb2 * (1 - x);
  67. x--;
  68. }
  69. sigma += a2 * ((4 * y) + 6);
  70. SetPixel (hdc,x0 + x, y0 + y,0);
  71. SetPixel (hdc,x0 - x, y0 + y,0);
  72. SetPixel (hdc,x0 + x, y0 - y,0);
  73. SetPixel (hdc,x0 - x, y0 - y,0);
  74. }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement