荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: playboy (为了钱,努力!), 信区: Program
标 题: 曲线
发信站: BBS 荔园晨风站 (Wed Jan 12 08:51:47 2000), 转信
#include <graphics.h>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
float qx[4][4]={{1,0,0,-1.573},{0,0,0,0},{0,0,0,0},{-1.573,0,0,.1494}};
float qy[4][4]={{0,1,1.573,0},{0,1,1.573,0},{0,0,0,0},{0,0,0,0}};
float qz[4][4]={{0,0,0,0},{1,0,0,-1.573},{1.573,0,.1494},{0,0,0,0}};
float px[4]={0,0,0,0};
float py[4]={0,0,0,0};
float pz[4]={0,0,0,0};
float hv[4]={0,0,0,0};
float hu[4]={0,0,0,0};
float x[100],y[100],z[100];
void transfhv()
{
int i,l;
for (i=0;i<=3;i++)
{
px[i]=0;
py[i]=0;
pz[i]=0;
for (l=0;l<=3;l++)
{
px[i]=px[i]+qx[i][l]*hv[l];
py[i]=py[i]+qy[i][l]*hv[l];
pz[i]=pz[i]+qz[i][l]*hv[l];
}
}
}
void transfhu()
{
int i,l;
for (l=0;l<=3;l++)
{
px[l]=0;
py[l]=0;
pz[l]=0;
for (i=0;i<=3;i++)
{
px[l]=px[l]+qx[i][l]*hu[i];
py[i]=py[l]+qy[i][l]*hu[i];
pz[i]=pz[i]+qz[i][l]*hu[i];
}
}
}
void transfv(int n)
{
int i;
x[n]=0;
y[n]=0;
z[n]=0;
for (i=0;i<=3;i++)
{
x[n]=x[n]+px[i]*hv[i];
y[n]=y[n]+py[i]*hv[i];
z[n]=z[n]+pz[i]*hv[i];
}
}
void transfu(int n)
{
int i;
x[n]=0;
y[n]=0;
z[n]=0;
for (i=0;i<=3;i++)
{
x[n]=x[n]+px[i]*hu[i];
y[n]=y[n]+py[i]*hu[i];
z[n]=z[n]+pz[i]*hu[i];
}
}
void draw(float ca,float sa,float cm,float sm,int n)
{
int i;
float st;
for (i=0;i<n;i++)
{
st=x[i];
x[i]=x[i]*cm-z[i]*sm;
z[i]=st*sm+z[i]*cm;
y[i]=y[i]*ca-z[i]*cm;
y[i]=y[i]*ca-z[i]*sa;
putpixel(getmaxx()/3+150*x[i],getmaxy()/2-y[i]*90,YELLOW);
}
}
void main()
{
float ca,sa,m,cm,sm,j,k,st;
int i,l,n;
int g=DETECT;
int gm;
initgraph(&g,&gm,"f:\\turboc3");
setbkcolor(BLUE);
setcolor(WHITE);
cleardevice();
ca=cos(45/57.3);
sa=sin(45/57.3);
for ( i=0;i<=3;i++)
{
m=90/57.3;
cm=cos(i*m);
sm=sin(i*m);
for (j=0;j<=1;j+=.1)
{
hv[0]=(j-1)*(j-1)*(2*j+1);
hv[1]=(3-2*j)*j*j;
hv[2]=(j-1)*(j-1)*j;
hv[3]=(j-1)*j*j;
transfhv();
n=0;
for (k=0;k<1;k+=.02)
{
hu[0]=(k-1)*(k-1)*(2*k+1);
hu[1]=(3-2*k)*k*k;
hu[2]=(k-1)*(k-1)*k;
hu[3]=(k-1)*k*k;
n++;
transfu(n);
}
draw(ca,sa,cm,sm,n);
}
for (j=0;j<=1;j+=.1)
{
hu[0]=(j-1)*(j-1)*(2*j+1);
hu[1]=(3-2*j)*j*j;
hu[2]=(j-1)*(j-1)*j;
hu[3]=(j-1)*j*j;
transfhu();
n=0;
for ( k=0;k<1;k+=.02)
{
hv[0]=(k-1)*(k-1)*(2*k+1);
hv[1]=(3-2*k)*k*k;
hu[2]=(k-1)*(k-1)*k;
hu[3]=(k-1)*k*k;
n++;
transfv(n);
}
draw(ca,sa,cm,sm,n);
}
}
getch();
closegraph();
}
--
※ 来源:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.1.90]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店