turboc 2.0画不同螺旋方向的方块

代码:

#include<graphics.h>
#include<math.h>

void polygonc();
void block();
main()
{
	int i,j,a,length,n,theta,x=100,y=350;
	int gdriver=VGA,gmode=VGAHI;
	printf("input length,n,theta:");
	scanf("%d,%d,%d",&length,&n,&theta);
	initgraph(&gdriver,&gmode,"C:\\TC20\\BGI");
	cleardevice();
	setbkcolor(9);
	setcolor(4);
	a=length/4;
	for(i=0;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;
}


}

运行效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值