主题:[原创]雪花专辑
hucheng
[专家分:890] 发布于 2007-06-24 11:57:00
程序下载http://upload.programfan.com/upfile/200706241223541.rar
专辑地址http://hucheng.programfan.com
/*01递归生成雪
花*/
#include <stdio.h>
#include <graphics.h>
#include <math.h>
#define PI 3.141592653
int main()
{
int gd=DETECT,gm;
float x0=320,y0=240,r=100;
void drawsnow(int x,int y,int r,float b);
registerbgidriver(EGAVGA_driver);
initgraph(&gd,&gm,"");
drawsnow(x0,y0,r,PI/6);
getch();
closegraph();
return 1;
}
void drawsnow(int x,int y,int r,float b)
{
int i;
float add,x1,y1,x2,y2;
if (r<2) return ;
for(add=PI/6;add<6.27;add+=PI/3)
{
x1=x+r*2.0/3.0*cos(add+b);y1=y+r*2.0/3.0*sin(add+b);
line(x,y,x1,y1);
drawsnow(x1,y1,r/3.0,add+b);
}
}
最后更新于:2007-06-25 16:47:00
回复列表 (共17个回复)
11 楼
hucheng [专家分:890] 发布于 2007-06-24 12:14:00
/*koch雪花4 动态-飘零*/
#include <stdio.h>
#include <graphics.h>
#include <math.h>
#include <bios.h>
#include <alloc.h>
#define R 20
#define MAX 1000
typedef struct {float x,y;}dotxy;
typedef struct lnode
{
dotxy loc,centre;
struct lnode *next; }lnode,*lnlink;
int main()
{
int makesnow(dotxy *loclist);
int gd=DETECT,gm,n,i,j,flag;
float b,len,y1;
dotxy loclist[MAX],temp[MAX];
/* registerbgidriver(EGAVGA_driver);*/
initgraph(&gd,&gm,"d:\\tc\\bgi");
n=makesnow(loclist);
b=0,y1=0;
while(!bioskey(1))
{
flag=0;
for(i=0;i<n;i++)
{
len=sqrt(loclist[i].x*loclist[i].x+loclist[i].y*loclist[i].y);
temp[i].x=320+len*(cos(b)*(loclist[i].x)/len+sin(b)*(loclist[i].y)/len);
temp[i].y=y1+len*(cos(b)*(loclist[i].y)/len+sin(b)*(loclist[i].x)/len);
if (temp[i].y>550) flag=1,y1=0;
}
if (flag)
for(i=0;i<n;i++) temp[i].y-=500;
y1+=1;
cleardevice();
for(j=0;j<2;j++)
{
for(i=0;i<n-1;i++)
{
line(temp[i].x,temp[i].y,temp[i+1].x,temp[i+1].y);
line(temp[i].x-60,temp[i].y-60,temp[i+1].x-60,temp[i+1].y-60);
line(temp[i].x+60,temp[i].y+60,temp[i+1].x+60,temp[i+1].y+60);
line(temp[i].x+60,temp[i].y-60,temp[i+1].x+60,temp[i+1].y-60);
line(temp[i].x-60,temp[i].y+60,temp[i+1].x-60,temp[i+1].y+60);
}
}
b+=5e-2;
}
getch();
closegraph();
}
12 楼
heidonglgc [专家分:1370] 发布于 2007-06-24 12:14:00
[quote]如遇到这样的错误:
fatal error C1083: Cannot open include file: 'graphics.h': No such file or directory
请问怎解决?
[/quote]
这些程序必须是在古董TURBOC环境中编译
'graphics.h'是TURBO的图形库头文件
13 楼
hucheng [专家分:890] 发布于 2007-06-24 12:15:00
/*接上11楼*/
int makesnow(dotxy *loclist)
{
lnlink p,q,pr,s,newnode;
int i,x,y;
float r,amount,num;
p=(lnlink)malloc(sizeof(lnode)*3);
if (p==NULL) exit(0);
p[0].loc.x=R/2*1.73;p[0].loc.y=-R/2;
p[1].loc.x=-R/2*1.73;p[1].loc.y=-R/2;
p[2].loc.x=0;p[2].loc.y=R;
p[0].centre.x=p[1].centre.x=p[2].centre.x=0;
p[0].centre.y=p[1].centre.y=p[2].centre.y=0;
p[0].next=p+1;p[1].next=p+2;p[2].next=p;
q=p,r=R,amount=3;
while(r>1)
{
num=0;
for(i=0;i<amount;i++)
{
pr=q->next;
newnode=(lnlink)malloc(sizeof(lnode));
if (newnode==NULL) exit(0);
s=newnode;
newnode->next=q->next;
q->next=s;
s->loc.x=(2.0*q->loc.x+pr->loc.x)/3.0;
s->loc.y=(2.0*q->loc.y+pr->loc.y)/3.0;
newnode=(lnlink)malloc(sizeof(lnode));
if (newnode==NULL) exit(0);
newnode->next=s->next;
s->next=newnode;
newnode->loc.x=q->loc.x+ pr->loc.x - q->centre.x;
newnode->loc.y=q->loc.y+ pr->loc.y - q->centre.y;
newnode->centre.x=(q->centre.x+2*newnode->loc.x)/3;
newnode->centre.y=(q->centre.y+2*newnode->loc.y)/3;
s->centre.x=newnode->centre.x;s->centre.y=newnode->centre.y;
s=newnode;
newnode=(lnlink)malloc(sizeof(lnode));
if (newnode==NULL) exit(0);
newnode->next=s->next;
s=s->next=newnode;
s->loc.x=(q->loc.x+2*pr->loc.x)/3;
s->loc.y=(q->loc.y+2*pr->loc.y)/3;
s->centre.x=(q->centre.x+2*pr->loc.x)/3;
s->centre.y=(q->centre.y+2*pr->loc.y)/3;
q->centre.x=(q->centre.x+2*q->loc.x)/3;
q->centre.y=(q->centre.y+2*q->loc.y)/3;
q=pr;
num+=3;
}
r/=3.0;amount+=num;
}
for(i=0,q=p;i<amount;i++,q=q->next) loclist[i].x=q->loc.x,loclist[i].y=q->loc.y;
return amount;
}
14 楼
hucheng [专家分:890] 发布于 2007-06-24 12:21:00
回12楼在菜单栏里找:OPTIONS->LINKS..打开一个对话框,然后把里面的 GRAPHICS LIBRARY的选项选中再试一下
15 楼
freeeerf [专家分:5440] 发布于 2007-06-26 22:00:00
楼主真是怀古啊,还忘不了graphics.h
16 楼
homer_rain [专家分:90] 发布于 2007-07-11 11:51:00
问一下,在VC6.0里怎么修改可以运行?
17 楼
hucheng [专家分:890] 发布于 2007-07-13 10:22:00
VC里用不了呀,因为没有graphics.h, graphics.lib
我来回复