139.图形法绘制圆

举报
C语言与CPP编程 发表于 2022/05/10 23:28:02 2022/05/10
【摘要】 #include <stdio.h>#include <graphics.h>#include <dos.h>/*这是根据给出的圆心坐标和点坐标分别在八个象限画点的子程序*/void circlePoint( int xCenter, int yCenter, int x, int y ){ putp...

  
  1. #include <stdio.h>
  2. #include <graphics.h>
  3. #include <dos.h>
  4. /*这是根据给出的圆心坐标和点坐标分别在八个象限画点的子程序*/
  5. void circlePoint( int xCenter, int yCenter, int x, int y )
  6. {
  7. putpixel( xCenter + x, yCenter + y, YELLOW );
  8. putpixel( xCenter - x, yCenter + y, YELLOW );
  9. putpixel( xCenter + x, yCenter - y, YELLOW );
  10. putpixel( xCenter - x, yCenter - y, YELLOW );
  11. putpixel( xCenter + y, yCenter + x, YELLOW );
  12. putpixel( xCenter - y, yCenter + x, YELLOW );
  13. putpixel( xCenter + y, yCenter - x, YELLOW );
  14. putpixel( xCenter - y, yCenter - x, YELLOW );
  15. }
  16. void myCircle(int xCenter,int yCenter,int radius)
  17. {
  18. int x, y, p;
  19. /*初始化各个参数*/
  20. x = 0;
  21. y = radius;
  22. p = 1 - radius;
  23. circlePoint(xCenter, yCenter, x, y);
  24. /*循环中计算圆上的各点坐标*/
  25. while( x < y ) {
  26. x++;
  27. if( p < 0 )
  28. p += 2*x+1;
  29. else
  30. {
  31. y--;
  32. p+=2*(x-y)+1;
  33. }
  34. circlePoint( xCenter, yCenter, x, y);
  35. }
  36. }
  37. void main()
  38. {
  39. int gdriver=DETECT, gmode; /*这是用c画图时必须要使用的图像入口*/
  40. int i;
  41. int xCenter, yCenter, radius;
  42. printf("Please input center coordinate :(x,y) ");
  43. scanf("%d,%d", &xCenter, &yCenter );
  44. printf("Please input radius : ");
  45. scanf("%d", &radius );
  46. /*这条语句初始化整个屏幕并把入口传给gdriver,注意引号中是tc中bgi目录的完整路径*/
  47. registerbgidriver(EGAVGA_driver);
  48. initgraph(&gdriver, &gmode, "..\\bgi");
  49. setcolor( BLUE );
  50. myCircle(xCenter, yCenter, radius);
  51. sleep(3);
  52. closegraph();
  53. return;
  54. }

文章来源: blog.csdn.net,作者:程序员编程指南,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_41055260/article/details/124665484

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。