138.正方形螺旋拼块图案

简介: 138.正方形螺旋拼块图案
#include <graphics.h>
#include <math.h>
void polygonc();
void block();
void main()
{
  int i,j,a,length,n,theta,x=100,y=350;
  int gdriver=DETECT,gmode;
  printf("input length, n theta:");
  scanf("%d%d%d",&length,&n,&theta);
  initgraph(&gdriver,&gmode,"c:\\tc");
  cleardevice();
  setbkcolor(9);
  setcolor(4);
  a=length/4;
  for(i=1;i<=4;i++)
  {
    for(j=1;j<=4;j++)
    {
      block(x,y,a,n,theta);
      theta=-theta;
      x=x+a;
    }
    x=100;
    y=y-a;
    theta=-theta;
  }
  getch();
  closegraph();
}
void polygonc(x0,y0,r,n,af)
int x0,y0,n,r;
float af;
{
  int x,y,xs,ys,i;
  float dtheta,theta;
  if(n<3)
    return;
  dtheta=6.28318/n;
  theta=af*0.0174533;
  xs=x0+r*cos(theta);
  ys=y0+r*sin(theta);
  moveto(xs,ys);
  for(i=1;i<n;i++)
  {
    theta=theta+dtheta;
    x=x0+r*cos(theta);
    y=y0+r*sin(theta);
    lineto(x,y);
  }
  lineto(xs,ys);
}
void block(x,y,a,n,theta)
int x,y,a,n,theta;
{
  int x0,y0,i,r;
  float t,f,af=45.;
  t=fabs(theta*0.0174533);
  f=1.0/(cos(t)+sin(t));
  r=a/1.414;
  x0=x+0.5*a;
  y0=y+0.5*a;
  for(i=1;i<=n;i++)
  {
    polygonc(x0,y0,r,4,af);
    r=r*f;
    af=af-theta;
  }
}
相关文章
|
Ubuntu Linux 数据安全/隐私保护
百度搜索:蓝易云【ubuntu系统安装gcc-7、g++-7教程】
请注意,以上步骤是针对Ubuntu系统的。如果你使用的是其他Linux发行版,请相应地调整命令。
289 6
|
Web App开发 Rust 应用服务中间件
在Nginx当中支持QUIC协议
Quick UDP Internet Connection(QUIC)协议是Google公司提出的基于UDP的高效可靠协议。有关协议的主要内容就不在本文过多描述了,本文主要是来讲一下,在Nginx当中如何去支持QUIC协议。 由于个人水平有限,如果哪里写的不对的地方,还请各位大佬们指正。
2145 0
在Nginx当中支持QUIC协议
|
6月前
|
Linux 网络安全 数据安全/隐私保护
centos开启samba服务
通过以上步骤,您已成功在CentOS系统上安装、配置并启动了Samba服务,并且可以通过Windows或Linux客户端访问共享目录。Samba为跨平台文件共享提供了强大的支持,配置灵活且易于管理。无论是简单的家庭网络共享还是企业级文件服务器,Samba都能胜任。通过合理的配置和访问控制,您可以确保文件共享的安全性和便利性。
502 74
|
9月前
|
前端开发 JavaScript
svg圆形进度条插件svg-gauge
svg-gauge是一款基于SVG的圆形进度条插件。该插件无任何依赖,可以轻松的制作出各种圆形进度条,以及圆形进度条的动画特效。
|
JavaScript 前端开发 开发者
React 的正确使用方法:ref 篇
你真的用对了 useRef 吗?在与 TypeScript 一起使用、以及撰写组件库的情况下,你的写法能够避开以下所有场景的坑吗?
|
10月前
|
安全 搜索推荐 大数据
大数据与智慧城市:数据驱动的城市管理
【10月更文挑战第31天】在信息技术飞速发展的今天,大数据成为推动智慧城市转型的核心驱动力。本文探讨了大数据在智慧交通、环保、安防、医疗和政务等领域的应用,揭示了数据驱动的城市管理带来的深刻变革,同时分析了面临的数据安全、隐私保护和数据孤岛等挑战,并展望了大数据在智慧城市建设中的未来前景。
|
负载均衡 网络协议 Linux
在Linux中,如何理解VRRP协议?
在Linux中,如何理解VRRP协议?
|
资源调度 PyTorch 调度
多任务高斯过程数学原理和Pytorch实现示例
本文探讨了如何使用高斯过程扩展到多任务场景,强调了多任务高斯过程(MTGP)在处理相关输出时的优势。通过独立多任务GP、内在模型(ICM)和线性模型(LMC)的核心区域化方法,MTGP能够捕捉任务间的依赖关系,提高泛化能力。ICM和LMC通过引入核心区域化矩阵来学习任务间的共享结构。在PyTorch中,使用GPyTorch库展示了如何实现ICM模型,包括噪声建模和训练过程。实验比较了MTGP与独立GP,显示了MTGP在预测性能上的提升。
258 7
|
存储 安全 前端开发
浏览器跨窗口通信:原理与实践
浏览器跨窗口通信:原理与实践
562 0
|
弹性计算 Java API
Netty入门到超神系列-Java NIO 三大核心(selector,channel,buffer)
理解Selector 和 Channel Selector 选择器,也叫多路复用器,可以同时处理多个客户端连接,多路复用器采用轮询机制来选择有读写事件的客户端链接进行处理。 通过 Selector ,一个 I/O 线程可以并发处理 N 个客户端连接和读写操作,这解决了传统同步阻塞 I/O 一连接一线程模型,架构的性能、弹性伸缩能力和可靠性都得到了极大的提升。 由于它的读写操作都是非阻塞的,这就可以充分提升 IO 线程的运行效率,避免由于频繁 I/O 阻塞导致的线程挂起。
405 0