新人求助,快疯了,求大神
请原谅我把全部都贴上来,调试之后26行m之前差一个; 没招了,求大神帮忙
#include"graphics.h" /*调用图形库函数*/
#include"math.h" /*调用数学函数*/
#include"stdio.h" /*调用标准I/O函数*/
#define PI 3.141596
#include <conio.h>
#define T PI/180
#define NN 36
#define DT PI/NN
#define DIST 0.8
#define R 190
static int n=1;
float t[3];
float s[3][3];
void trans(float t[3],double s[][3])
{
s[0][0]=cos(t[1])*cos(t[2]); s[0][1]=cos(t[1])*sin(t[2]);
s[0][2]=-sin(t[1]);
s[1][0]=sin(t[0])*sin(t[1])*cos(t[2])-cos(t[0])*sin(t[2]);
s[1][1]=sin(t[0])*sin(t[1])*sin(t[2])+cos(t[0])*cos(t[2]);
s[1][2]=sin(t[0])*cos(t[1]);
s[2][0]=cos(t[0])*sin(t[1])*cos(t[2])+sin(t[0])*sin(t[2]);
s[2][1]=cos(t[0])*sin(t[0])*sin(t[2])-sin(t[0])*cos(t[2]);
s[2][2]=cos(t[0])*cos(t[1]);
}
void draw(float** m,float da,float db)
float m[3][3],da,db;
{
float f[3],f0 , x0,y0,x1,y1,x2,y2;
f[0]=R*sin(da)*cos(db); f[1]=R*sin(da)*sin(db);
f[2]=R*cos(da);
f0=f[0]*m[0][2]+f[1]*m[1][2]+f[2]*m[2][2];
if(f0<=0) n=1;
else
{
x0=300.0;y0=165.0;
x2=(m[0][0]*f[0]+m[1][0]*f[1]+m[2][0]*f[2])+x0;
y2=(m[0][1]*f[0]+m[1][1]*f[1]+m[2][1]*f[2])*DIST+y0;
if(n==1) {n=2;x1=x2;y1=y2;}
else
{
line(x1,y1,x2,y2);
x1=x2;y1=y2;
}
}
} main() /*主函数*/
{
float i,x,y; float d[3],r[3][3],ta,tb;
char k; /*定义单精度浮点型变量i,x,y*/
int gdriver=DETECT,gmode=VGAMED,a=1,p=1; /*定义整型变量gdriver,gmode*/
initgraph(&gdriver,&gmode,"d:\\tc"); /*定义变量后,初始化图形系统*/
cleardevice();
setbkcolor(a); /*背景颜色*/
printf("\n");
printf("\n"); /*C 语言图形函数*/
printf("\n");
printf(" the following math functions were used in the main function.\n");
printf(" setbkcolor(int color);\n"); /* 背景颜色*/
printf(" setcolor(int color);\n"); /* 画笔颜色*/
printf(" putpexel(x,y,color);\n"); /* 画像素点*/
printf(" line(x1,y1,x2,y2)\n"); /* 直线函数*/
printf(" rectangle(xl,yt,xr,yb)\n");; /* 矩形函数*/
printf(" arc(x,y,as,ae,r)\n"); /* 圆弧函数*/
printf(" circle(x,y,r)\n"); /*圆形函数*/
printf(" ellipse(x,y,as,ae,rx,ry)\n"); /* 椭圆函数*/
printf("\n");
printf("\n"); /* 按任意键开始演示*/
setcolor(2);
setlinestyle(0,0,3);
rectangle(4,4,635,475); /*绘制矩形框*/
getch();
cleardevice();
printf("\n"); /* 模拟手工画图*/
printf("\n"); /* 函数曲线图形*/
setcolor(3);
setlinestyle(3,3,3);
rectangle(4,4,635,475); /*绘制图纸边框*/
for (i=0;i<=2*PI;i+=PI/99999)
{
putpixel(40*i,170-21*i*sin(1.6*i),2); putpixel(40.3*i,170-22*i*sin(1.6*i),3);
putpixel(40.6*i,170-23*i*sin(1.6*i),10);
} do{
for(i=0;i<=361;i+=1)
{
k=kbhit();
if(k!=0)break;
setactivepage(p);
d[0]=i*T;
cleardevice();
trans(d,r);
for(tb=0.0;tb<PI;tb+=DT)
{
n=1;
for(ta=0.0;ta<2.1*PI;ta+=DT) draw(r,ta,tb);}
for(ta=0.0;ta<PI;ta+=DT)
{
n=1;
for(tb=0.0;tb<2.1*PI;tb+=DT) draw(r,ta,tb);
}
setvisualpage(p);delay(150);p=1-p;
}
} while(k==0);
setlinestyle(0,0,1);
setfillstyle(1,12);
fillellipse(320,60,25,25); /*绘制太阳*/
for (x=280;x>=250;x-=0.0001)
{
putpixel(x,60,12); /*绘制阳光线*/
}
for (x=360;x>=390;x+=0.0001)
{
putpixel(x,60,12); /*绘制阳光线*/
}
for (y=24;y>=12;y-=0.0001)
{
putpixel(320,y,12); /*绘制阳光线*/
}
for (y=96;y<=108;y+=0.0001)
{
putpixel(320,y,12); /*绘制阳光线*/
}
setlinestyle(3,0,1);
setcolor(12);
for (i=0;i<=2*PI;i+=PI/12) /*绘制阳光线*/
{
line(320+40*cos(i),60-36*sin(i),320+70*cos(i),60-48*sin(i));
for (x=0;x<=55555;x+=0.1)
{
y=y+x; /*延时控制*/
}
} for (i=0;i<=2*PI;i+=PI/99999) /*绘制花朵*/
{
putpixel(118-15*cos(4*i)*cos(i),160-15*cos(4*i)*sin(i),14);
putpixel(118-25*cos(4*i)*cos(i),160-25*cos(4*i)*sin(i),13);
putpixel(118-35*cos(4*i)*cos(i),160-35*cos(4*i)*sin(i),10);
}
for (i=0;i<=PI;i+=PI/99999)
{
putpixel(320-315*cos(i),360-95*sin(i),11); /*绘制拱桥*/
putpixel(320-315*cos(i),360-96*sin(i),11); /*绘制拱桥*/
putpixel(320-315*cos(i),360-97*sin(i),11); /*绘制拱桥*/
}
for (a=70;a<=570;a+=50)
{
for (i=0;i<=PI;i+=PI/9999)
{
putpixel(a-25*cos(i),360-40*sin(i),11); /*绘制桥*/
}
}
for (x=0;x<=640;x+=0.001)
{
putpixel(8*x,380-8*sin(x),9); /*绘制曲线水流*/
}
for (x=0;x<=600;x+=0.001)
{
putpixel(10*x,405-10*sin(x),9); /*绘制曲线水流*/
}
for (x=0;x<=560;x+=0.001)
{
putpixel(12*x,430-12*sin(x),9); /*绘制曲线水流*/
}
for(x=60;x<=80;x+=0.01)
{
ellipse(270,360,180 ,0,160-x,25);
}
for (x=0;x<=520;x+=0.001)
{
putpixel(8*x,455-8*sin(x),9); /*绘制曲线水流*/
}
setcolor(13);
setlinestyle(0,0,1);
rectangle(460,100,620,200); /*绘制地图框(矩形)*/
setcolor(11);
setlinestyle(0,0,3);
ellipse(540,150,0,360,77,48); /*绘制地球(椭圆)*/
setcolor(10); setlinestyle(0,0,1);
circle(540,150,46); /*绘制经线(圆形)*/
ellipse(540,100,210,330,45,16); /*绘制北极圈(椭圆弧)*/
ellipse(540,200,30,150,45,16); /*绘制南极圈(椭圆弧)*/
setcolor(14);
setlinestyle(3,0,1);
line(460,150,620,150); /*绘制赤道(水平线)*/
line(540,100,540,200); /*绘制经线(垂直线)*/
setcolor(11); setlinestyle(0,0,1);
for (i=0;i<=2*PI;i+=PI/300)
{
putpixel(590-35*cos(i),50-35*sin(i),11); /*绘制0.1秒刻度*/
}
setcolor(14);
setlinestyle(0,0,1);
circle(590,50,2); /*绘制中心轴*/
setcolor(13);
setlinestyle(0,0,3);
for (i=0;i<=2*PI;i+=PI/6)
{
line(590+25*sin(i),50-25*cos(i),590+30*sin(i),50-30*cos(i)); /*绘制小时*/
for (x=0;x<=5555;x+=0.001)
{
y=y+x; /*延时控制*/
}
}setbkcolor(BLACK);setcolor(GREEN);
d[1]=30*T; d[2]=10*T; getch();
closegraph();
}
}