888光立方程序Word格式.docx

上传人:b****3 文档编号:15826670 上传时间:2022-11-16 格式:DOCX 页数:39 大小:19.39KB
下载 相关 举报
888光立方程序Word格式.docx_第1页
第1页 / 共39页
888光立方程序Word格式.docx_第2页
第2页 / 共39页
888光立方程序Word格式.docx_第3页
第3页 / 共39页
888光立方程序Word格式.docx_第4页
第4页 / 共39页
888光立方程序Word格式.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

888光立方程序Word格式.docx

《888光立方程序Word格式.docx》由会员分享,可在线阅读,更多相关《888光立方程序Word格式.docx(39页珍藏版)》请在冰豆网上搜索。

888光立方程序Word格式.docx

ucharcodedat3[24]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x16,0x26,0x36,0x46,0x56,0x66,0x65,0x64,0x63,0x62,0x61,0x60,0x50,0x40,0x30,0x20,0x10};

/*3pchar*/

ucharcodetable_3p[3][8]={0xff,0x89,0xf5,0x93,0x93,0xf5,0x89,0xff,0x0e,0x1f,0x3f,0x7e,0x7e,0x3f,0x1f,0x0e,0x18,0x3c,0x7e,0xff,0x18,0x18,0x18,0x18};

/*initializtion

Thatistoinitializetheprogram.

Itiswritetosetthetimerinc52mcu.

Sotheprogramcanrenovatetheled_3d_cubeinfixedtimeusetheinterruptfunction.*/

voidsinter()

{

IE=0x82;

TCON=0x01;

TH0=0xc0;

TL0=0;

TR0=1;

}

voiddelay5us(void)//误差-0.026765046296usSTC1T22.1184Mhz

unsignedchara,b;

for(b=7;

b>

0;

b--)

for(a=2;

a>

a--);

voiddelay(uinti)

{

while(i--){

delay5us();

}//12t的mcu注释这个延时即可

/*Tojudgethenumbit*/

ucharjudgebit(ucharnum,ucharb)

charn;

num=num&

(1<

<

b);

if(num)

n=1;

else

n=0;

returnn;

/*Tofigureouttheroundnumber*/

ucharabs(uchara)

ucharb;

b=a/10;

a=a-b*10;

if(a>

=5)

b++;

returnb;

/*Tofigureouttheabsolutevalue*/

ucharabss(chara)

if(a<

0)

a=-a;

returna;

/*Thefunctioncancomparatthecharacter.

Andremovethebigonetotheback.*/

voidmax(uchar*a,uchar*b)

uchart;

if((*a)>

(*b))

{

t=(*a);

(*a)=(*b);

(*b)=t;

}

/*Thefunctionistofigureoutthemaxnumberandreturnit.*/

ucharmaxt(uchara,ucharb,ucharc)

b)

a=b;

c)

a=c;

voidclear(charle)

uchari,j;

for(j=0;

j<

8;

j++)

for(i=0;

i<

i++)

display[j][i]=le;

voidtrailler(uintspeed)

chari,j;

for(i=6;

i>

=-3;

i--)

if(i>

=0)

display[j][i]=display[j][i+1];

if(i<

4)

display[j][i+4]=0;

delay(speed);

voidpoint(ucharx,uchary,ucharz,ucharle)

ucharch1,ch0;

ch1=1<

x;

ch0=~ch1;

if(le)

display[z][y]=display[z][y]|ch1;

else

display[z][y]=display[z][y]&

ch0;

voidtype(ucharcha,uchary)

ucharxx;

for(xx=0;

xx<

xx++)

display[xx][y]=table_cha[cha][xx];

/*Thefirstvariableisthedistancefromthemidpoint.

Thesecondisthelayer.

thethirdistheflashspeedofthetimebetweeneachtwopoint.

Theforthistheenableio,itcontrolsweatherdraworclaen.*/

voidcirp(charcpp,uchardir,ucharle)

uchara,b,c,cp;

if((cpp<

128)&

(cpp>

=0))

if(dir)

cp=127-cpp;

cp=cpp;

a=(dat[cp]>

>

5)&

0x07;

b=(dat[cp]>

2)&

c=dat[cp]&

0x03;

if(cpp>

63)

c=7-c;

point(a,b,c,le);

voidline(ucharx1,uchary1,ucharz1,ucharx2,uchary2,ucharz2,ucharle)

chart,a,b,c,a1,b1,c1,i;

a1=x2-x1;

b1=y2-y1;

c1=z2-z1;

t=maxt(abss(a1),abss(b1),abss(c1));

a=x1*10;

b=y1*10;

c=z1*10;

a1=a1*10/t;

b1=b1*10/t;

c1=c1*10/t;

t;

point(abs(a),abs(b),abs(c),le);

a+=a1;

b+=b1;

c+=c1;

point(x2,y2,z2,le);

voidbox(ucharx1,uchary1,ucharz1,ucharx2,uchary2,ucharz2,ucharfill,ucharle)

uchari,j,t=0;

max(&

x1,&

x2);

y1,&

y2);

z1,&

z2);

for(i=x1;

=x2;

t|=1<

i;

if(!

le)

t=~t;

if(fill)

if(le)

for(i=z1;

=z2;

for(j=y1;

=y2;

display[j][i]|=t;

display[j][i]&

=t;

display[y1][z1]|=t

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1