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;
  }
}
相关文章
|
3天前
|
Python
用Pygame Zero 画矩形 (空心、实心、多个矩形、多层同心矩形、彩虹条矩形、条纹相间、随机颜色矩形、特殊效果、渐变效果)
用Pygame Zero 画矩形 (空心、实心、多个矩形、多层同心矩形、彩虹条矩形、条纹相间、随机颜色矩形、特殊效果、渐变效果)
60 40
|
3天前
|
Python
让我们一起用Pygame Zero 画圆形 (空心圆圈、实心圆、多个小球、多层同心圆、随机颜色同心圆、有渐变效果填充圆)
让我们一起用Pygame Zero 画圆形 (空心圆圈、实心圆、多个小球、多层同心圆、随机颜色同心圆、有渐变效果填充圆)
53 31
|
5月前
|
前端开发 JavaScript
会旋转的圣诞树
这篇文章介绍了如何使用HTML、CSS和JavaScript实现一个动态旋转的圣诞树效果,包括详细的实现步骤和编码实现,以及最终效果的展示。
会旋转的圣诞树
圆角三角形,二次方贝塞尔曲线
圆角三角形,二次方贝塞尔曲线
wustojc5006菱形图案
wustojc5006菱形图案
45 0
牛客网——空心正方形图案
牛客网——空心正方形图案
127 0
143.Mandelbrot分形图案
143.Mandelbrot分形图案
95 0
110.绘制彩色抛物线
110.绘制彩色抛物线
111 0