魔方java源代码.docx
- 文档编号:6052310
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:11
- 大小:15.70KB
魔方java源代码.docx
《魔方java源代码.docx》由会员分享,可在线阅读,更多相关《魔方java源代码.docx(11页珍藏版)》请在冰点文库上搜索。
魔方java源代码
;
import;
import;
import;
import.*;
import;
import.*;
import.*;
import.*;
classmySimpleUniverseextendsApplet
{
BranchGroupcreateSceneGraph(Canvas3Dcanvas)
{
.");
for(inti=0;i<=2;i++)
for(intj=0;j<=2;j++)
for(intk=0;k<=2;k++)
{
int[]p;
p=(i,j,k,;
[i][j][k]=newBlock(i,j,k,p[0],p[1],p[2],trans,t3d,objRoot,this);
}
"加入每个方块的坐标系和方块,完成.\n");
etNominalViewingTransform();
TransformGroupobjScale=newTransformGroup();
Transform3Dt3d=newTransform3D();
EnabletheTRANSFORM_WRITEcapabilitysothat
Addittothe
TransformGroupobjTrans=newTransformGroup();
;
;
(objTrans);
Font3Df3d;
if(tessellation>
{
f3d=newFont3D(newFont(fontName,,2),
tessellation,
newFontExtrusion());
}
else
{
f3d=newFont3D(newFont(fontName,,2),
newFontExtrusion());
}
Text3Dtxt=newText3D(f3d,textString,
myPoint3f);
Shape3Dsh=newShape3D();
Appearanceapp=newAppearance();
Materialmm=newMaterial();
(true);
(mm);
(txt);
(app);
(sh);
BoundingSpherebounds=
newBoundingSphere(newPoint3d,,,;
;
}
}
switch(doType)
{
case'Z':
for(inti=0;i<=2;i++)
for(intj=0;j<=2;j++)
;
intchangBlockY=positionArray[i][j][Floor].y;
intchangBlockZ=positionArray[i][j][Floor].z;
BlockchangBlock=blockArray[changBlockX][changBlockY][changBlockZ];
('Z',totateArg);
}
break;
case'Y':
for(inti=0;i<=2;i++)
;
intchangBlockY=positionArray[i][Floor][k].y;
intchangBlockZ=positionArray[i][Floor][k].z;
BlockchangBlock=blockArray[changBlockX][changBlockY][changBlockZ];
('Y',totateArg);
}
break;
case'X':
;
intchangBlockY=positionArray[Floor][j][k].y;
intchangBlockZ=positionArray[Floor][j][k].z;
BlockchangBlock=blockArray[changBlockX][changBlockY][changBlockZ];
('X',totateArg);
}
break;
default:
"无效的操作");
}
someBlockNewToOld();
}
+","+blockArray[i][j][k].y+","+blockArray[i][j][k].z);
"Position:
"+(i-1)+","+(j-1)+","+(k-1)+"的块号是:
"+(positionArray[i][j][k].x-1)+","+(positionArray[i][j][k].y-1)+","+(positionArray[i][j][k].z-1));
}
}
aveNew)
{
positionArray[i][j][k].newToOld();
}
}
}
publicstaticvoidmyWait()
{
try
{
howPosition();
();
doIt('Y',0+1,-90);
();
howPosition();
doIt('Z',-1+1,-90);
howPosition();
();
doIt('Z',-1+1,90);
howPosition();
howPosition();
doIt('X',1+1,90);
();
howPosition();
doIt('X',1+1,-90);
howPosition();
();
初全在原位置\n");
.");
}
"+toArg+""+ttoArg+""+tttoArg);
");
();
}
elseif(num>=2)
{"###########################找到了num="+num+"个");
}
returnneedRotate;
}
voidstartDonghuaX()
{
.");
try
{
.");
try
{
.");
try
{
...");
;
=mianxinpianyi[i].y;
=mianxinpianyi[i].z;
=+dingdianPianyiX[j].x;
dingdian[j].y=+dingdianPianyiX[j].y;
dingdian[j].z=+dingdianPianyiX[j].z;
}
elseif(i==2||i==3)
{
dingdian[j].x=+dingdianPianyiY[j].x;
dingdian[j].y=+dingdianPianyiY[j].y;
dingdian[j].z=+dingdianPianyiY[j].z;
}
elseif(i==4||i==5)
{
dingdian[j].x=+dingdianPianyiZ[j].x;
dingdian[j].y=+dingdianPianyiZ[j].y;
dingdian[j].z=+dingdianPianyiZ[j].z;
}
}
*dingdian[k].y,*dingdian[k].z);
vert2[3-k]=newPoint3f*dingdian[k].x,*dingdian[k].y,*dingdian[k].z);
}
Shape3Dshape1=(observer,presentImageFile,vert1);
Shape3Dshape2=(observer,presentImageFile,vert2);
乘上后有数据问题
*dingdian[j].y,*dingdian[j].z);
;
whickBlockPainted++;
}
etBlockId(blockIdX,blockIdY,blockIdZ);
}
intgetChujiao(intxyzQian,intxyzHou)
{
intvalue=0;
if((xyzQian==-1)&&(xyzHou==-1))
{
value=3*(-1)*45;
}
elseif((xyzQian==-1)&&(xyzHou==1))
{
value=5*(-1)*45;
}
elseif((xyzQian==1)&&(xyzHou==-1))
{
value=1*(-1)*45;
}
elseif((xyzQian==1)&&(xyzHou==1))
{
value=7*(-1)*45;
}
elseif((xyzQian==0)&&(xyzHou==-1))
{
value=2*(-1)*45;
}
elseif((xyzQian==0)&&(xyzHou==1))
{
value=6*(-1)*45;
}
elseif((xyzQian==-1)&&(xyzHou==0))
{
value=4*(-1)*45;
}
elseif((xyzQian==1)&&(xyzHou==0))
{
value=0*(-1)*45;
}
elseif((xyzQian==0)&&(xyzHou==0))
"中间块,返回任意初角");
else
"参数错误x="+xyzQian+"y="+xyzHou);
returnvalue;
}
}
classPosition
{
intx;
inty;
intz;
intnewx;
intnewy;
intnewz;
booleanhaveNew=false;
publicPosition(inti,intj,intk)
{
x=i;
y=j;
z=k;
}
voidsetBlockId(intblockIdX,intblockIdY,intblockIdZ)
{
newx=blockIdX;
newy=blockIdY;
newz=blockIdZ;
haveNew=true;
==x)&&(positionArray[i][j][k].y==y)&&(positionArray[i][j][k].z==z))
{
p[0]=i;
p[1]=j;
p[2]=k;
returnp;
}
}
"该方块没有对应的位置");
returnp;
//这里不该返回任何东西,该抛出异常
}
}
//Point3f,Vector3f不好用,我自定义的三维变量
classMyPoint
{intx;
inty;
intz;
//构造函数一
MyPoint(intgetx,intgety,intgetz)
{
x=getx;
y=gety;
z=getz;
}
//构造函数二,转化float为int
MyPoint(floatgetx,floatgety,floatgetz)
{
x=(int)getx;
y=(int)gety;
z=(int)getz;
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 魔方 java 源代码