2、加一个引导层;
3、在引导层画一个椭圆,并在第二十帧片按F5;
4、选中小球影片剪辑的那个层,在第十帧处按F6,插入一个关键帧,并将第十帧片的小球拖到椭圆的另一边;
5、在第一帧和第十帧之间做一个移动宴歼消动画;
6、再选中小球的层,在第二十帧处插入关晌知键帧,在第十帧和第二十帧之间做一个移动动画;
7、其实并不难,你好好试试看,一定能做好的 。
/* 旋转的立体椭球 */#include <graphics.h>
#include <math.h>宴正
#include <conio.h>
#define PI 3.14159
#define T PI/伍祥橘180
#define NN 36
#define DT PI/NN
#define DIST 0.8
#define R 190
static int n=1
void trans(t,s)
float t[3]
float s[3][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(m,da,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.0y0=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=2x1=x2y1=y2}
else
{
line(x1,y1,x2,y2)
x1=x2y1=y2
}
}
}
main()
{
float d[3],r[3][3],ta,tb
char k
int gdriver=VGA,gmode=VGAMED, i,p=1
initgraph(&gdriver,&gmode,"c:\\tc")
setbkcolor(BLACK)setcolor(GREEN)
d[1]=30*Td[2]=10*T
do{
for(i=0i<腔团=361i+=1)
{
k=kbhit()
if(k!=0)break
setactivepage(p)
d[0]=i*T
cleardevice()
trans(d,r)
for(tb=0.0tb<PItb+=DT)
{
n=1
for(ta=0.0ta<2.1*PIta+=DT) draw(r,ta,tb)}
for(ta=0.0ta<PIta+=DT)
{
n=1
for(tb=0.0tb<2.1*PItb+=DT) draw(r,ta,tb)
}
setvisualpage(p)delay(150)p=1-p
}
}
getch()closegraph()
}
xc=-38.0579yc=0
zc=-18.9169
xr=sqrt(12471489.68)
zr=sqrt(12469683.42)
yr=zr
%根睁升据方程,可罩拦以得到椭球的中新悉闷老坐标和三个半轴长
ellipsoid(xc,yc,zc,xr,yr,zr)
axis equal
xlabel('x')ylabel('y')zlabel('z')
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)