137.正六边形螺旋图案

举报
C语言与CPP编程 发表于 2022/05/10 23:56:59 2022/05/10
【摘要】 #include <graphics.h>#include <math.h>void polygonc();void main(){ int i,r,n,x=320,y=240; int gdriver=9,gmode=2; float theta,alfa; n=30; theta=6.0; initgraph...

  
  1. #include <graphics.h>
  2. #include <math.h>
  3. void polygonc();
  4. void main()
  5. {
  6. int i,r,n,x=320,y=240;
  7. int gdriver=9,gmode=2;
  8. float theta,alfa;
  9. n=30;
  10. theta=6.0;
  11. initgraph(&gdriver,&gmode,"c:\\tc");
  12. cleardevice();
  13. setbkcolor(MAGENTA);
  14. setcolor(WHITE);
  15. r=160;
  16. alfa=60.0;
  17. for(i=0;i<n;i++)
  18. {
  19. polygonc(x,y,r,6,alfa);
  20. r=(int)(0.866*r/cos((30.0-theta)*0.0174533));
  21. alfa=alfa+theta;
  22. }
  23. getch();
  24. closegraph();
  25. }
  26. void polygonc(x0,y0,r,n,af)
  27. int x0,y0,n,r;
  28. float af;
  29. {
  30. int x,y,xs,ys,i;
  31. float dtheta,theta;
  32. if(n<3)
  33. return;
  34. dtheta=6.28318/n;
  35. theta=af*0.0174533;
  36. xs=x0+r*cos(theta);
  37. ys=y0+r*sin(theta);
  38. moveto(xs,ys);
  39. for(i=1;i<n;i++)
  40. {
  41. theta=theta+dtheta;
  42. x=x0+r*cos(theta);
  43. y=y0+r*sin(theta);
  44. lineto(x,y);
  45. }
  46. lineto(xs,ys);
  47. }

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

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

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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