亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mofang.java

?? java編寫的3D魔方源代碼
?? JAVA
?? 第 1 頁 / 共 5 頁
字號(hào):
                //System.in.read();//暫停
                //
                myThread.sleep(donghuaDelay);
             }
              catch(Exception e)
            {
             }
                           //在這里才放出令牌
             selectDonghuaId++;
     selectDonghuaId%=9;
            }
 }
   void startDonghuaY()
  {
             //動(dòng)畫模塊
            int chuJiao ;
            int oneTime ;
            int bianJiao ;
            int nowJiao ;
            //測試
            //totateArg=90;
            chuJiao=getChujiao(yuanz,yuanx);
            if(totateArg==-90)
            oneTime=-15 ;
            else
            oneTime=15 ;
                //System.out.println("chuJiao="+chuJiao);
                //System.out.println("totateArg="+totateArg);
            //nowJiao=chuJiao+bianJiao ;
            //這是目前角度公式,可見,據(jù)坐標(biāo)可以判斷它的角度嘛
            for(bianJiao=0;bianJiao!=(totateArg+oneTime);bianJiao+=oneTime)
            {
            if(!closeDonghua)
            {
              while(myDonghuaId!=selectDonghuaId)//動(dòng)畫同步相關(guān)輪到自己時(shí)才執(zhí)行,把令牌交給下一個(gè)
             {;//System.out.println("我是"+myDonghuaId+"號(hào),而令牌現(xiàn)在是"+selectDonghuaId+"號(hào),我要等...");
       try
         {
          //System.in.read();//暫停
               myThread.sleep(whileDelay);
           }
             catch(Exception e)
           {
            }
           }
          }
                //計(jì)算x,y和角度輸出
                float fx ;
                float fy ;
                float fz ;
                //半徑
                float r;
    if(yuanz==0&&yuanx==0)
    r=0;//(x,y)不變,故不用計(jì)算,直接給(0,0),初角返回任何值都可;
    else
    {
    if(yuanz==0||yuanx==0)
    r=1.0f;
    else
    r=1.414f;
             }
                nowJiao=chuJiao+bianJiao ;
                //使用初角直為了計(jì)算當(dāng)前(x,y)位置,當(dāng)前jiaodu1與他無關(guān),只與老角有關(guān)
                //(-1,-1)距離原點(diǎn)為根2,約1.732
                //0.3指定了1點(diǎn)在0.3,-0.3處
                fz=(float)kuaiZhongXinWeizhi*r*(float)Math.cos(Math.PI*nowJiao/180);
                fx=(float)kuaiZhongXinWeizhi*r*(float)Math.sin(Math.PI*nowJiao/180);
                fy=(float)kuaiZhongXinWeizhi*(yuany);
                //z坐標(biāo)不變,這里的z早減過了1
        //計(jì)算出了全部數(shù)據(jù),OK,開始刷新
        //用變換量
        //transz.rotZ(Math.toRadians(anglez));
        //transy.rotY(Math.toRadians(bianJiao+oldJiaoDu));
        //transx.rotX(Math.toRadians(anglex));
        transp.setTranslation(new Vector3f(fx,fy,fz));
        //生效
        //transGroupz.setTransform(transz);
        //transGroupy.setTransform(transy);
        //transGroupx.setTransform(transx);
        transGroupp.setTransform(transp);
    //停不了,只能使用多線程或定時(shí)
                //System.out.println("bianJiao="+bianJiao);
                 try
              {
                //System.in.read();//暫停
                //
                myThread.sleep(donghuaDelay);
             }
              catch(Exception e)
            {
             }
                           //在這里才放出令牌
             selectDonghuaId++;
     selectDonghuaId%=9;
            }
 }
   void startDonghuaZ()
  {
            //動(dòng)畫模塊
            int chuJiao ;
            int oneTime ;
            int bianJiao ;
            int nowJiao ;
            //測試
            //totateArg=90;
            chuJiao=getChujiao(yuanx,yuany);
            if(totateArg==-90)
            oneTime=-15 ;
            else
            oneTime=15 ;
                //System.out.println("chuJiao="+chuJiao);
                //System.out.println("totateArg="+totateArg);
            //nowJiao=chuJiao+bianJiao ;
            //這是目前角度公式,可見,據(jù)坐標(biāo)可以判斷它的角度嘛
            for(bianJiao=0;bianJiao!=(totateArg+oneTime);bianJiao+=oneTime)
            {
            if(!closeDonghua)
            {
              while(myDonghuaId!=selectDonghuaId)//動(dòng)畫同步相關(guān)輪到自己時(shí)才執(zhí)行,把令牌交給下一個(gè)
             {;//System.out.println("我是"+myDonghuaId+"號(hào),而令牌現(xiàn)在是"+selectDonghuaId+"號(hào),我要等...");
       try
         {
          //System.in.read();//暫停
               myThread.sleep(whileDelay);
           }
             catch(Exception e)
           {
            }
           }
          }
                //計(jì)算x,y和角度輸出
                float fx ;
                float fy ;
                float fz ;
                //半徑
                float r;
    if(yuanx==0&&yuany==0)
    r=0;//(x,y)不變,故不用計(jì)算,直接給(0,0),初角返回任何值都可;
    else
    {
    if(yuanx==0||yuany==0)
    r=1.0f;
    else
    r=1.414f;
             }
                nowJiao=chuJiao+bianJiao ;
                //使用初角直為了計(jì)算當(dāng)前(x,y)位置,當(dāng)前jiaodu1與他無關(guān),只與老角有關(guān)
                //(-1,-1)距離原點(diǎn)為根2,約1.732
                //0.3指定了1點(diǎn)在0.3,-0.3處
                fx=(float)kuaiZhongXinWeizhi*r*(float)Math.cos(Math.PI*nowJiao/180);
                fy=(float)kuaiZhongXinWeizhi*r*(float)Math.sin(Math.PI*nowJiao/180);
                fz=(float)kuaiZhongXinWeizhi*(yuanz);
                //z坐標(biāo)不變,這里的z早減過了1
        //計(jì)算出了全部數(shù)據(jù),OK,開始刷新
        //用變換量
        //transz.rotZ(Math.toRadians());
        //transy.rotY(Math.toRadians());
        //transx.rotX(Math.toRadians());
        transp.setTranslation(new Vector3f(fx,fy,fz));
        //生效
        //transGroupz.setTransform(transz);
        //transGroupy.setTransform(transy);
        //transGroupx.setTransform(transx);
        transGroupp.setTransform(transp);
    //停不了,只能使用多線程或定時(shí)

                //System.out.println("bianJiao="+bianJiao);
                 try
              {
                //System.in.read();//暫停
                //
                myThread.sleep(donghuaDelay);
             }
              catch(Exception e)
            {
             }
                           //在這里才放出令牌
             selectDonghuaId++;
     selectDonghuaId%=9;

            }
  }
    //center點(diǎn)僅用來計(jì)算顏色
    void add3DCube(int centerx,int centery,int centerz,TransformGroup myTransGroup)
    {
        //System.out.println("正在畫該塊.....");
        //顏色數(shù)據(jù)結(jié)構(gòu)
        int[]compare=new int[6];
        compare[0]=centerx ;
        //x
        compare[1]=centerx ;
        //x
        compare[2]=centery ;
        //y
        compare[3]=centery ;
        //y
        compare[4]=centerz ;
        //z
        compare[5]=centerz ;
        //z
        int[]compareWith=new int[6];
        compareWith[0]=1 ;
        compareWith[1]=-1 ;
        compareWith[2]=1 ;
        compareWith[3]=-1 ;
        compareWith[4]=1 ;
        compareWith[5]=-1 ;
        Color3f presentMianColor ;
        //面圖
        String presentImageFile;
        mianImageFile[0]="IMG\\coverRight.jpg";
        mianImageFile[1]="IMG\\coverLeft.jpg";
        mianImageFile[2]="IMG\\coverUp.jpg";
        mianImageFile[3]="IMG\\coverDown.jpg";
        mianImageFile[4]="IMG\\coverFront.jpg";
        mianImageFile[5]="IMG\\coverBehind.jpg";
        mianImageFile[6]="IMG\\coverCenter.jpg";
        //點(diǎn)數(shù)據(jù)結(jié)構(gòu)
        Vector3f mianxin=new Vector3f();
        Vector3f[]mianxinpianyi=new Vector3f[6];
        mianxinpianyi[0]=new Vector3f(1,0,0);
        mianxinpianyi[1]=new Vector3f(-1,0,0);
        mianxinpianyi[2]=new Vector3f(0,1,0);
        mianxinpianyi[3]=new Vector3f(0,-1,0);
        mianxinpianyi[4]=new Vector3f(0,0,1);
        mianxinpianyi[5]=new Vector3f(0,0,-1);
        Vector3f[]dingdianPianyiX=new Vector3f[4];
        dingdianPianyiX[0]=new Vector3f(0.0f,1.0f,1.0f);
        dingdianPianyiX[1]=new Vector3f(0.0f,-1.0f,1.0f);
        dingdianPianyiX[2]=new Vector3f(0.0f,-1.0f,-1.0f);
        dingdianPianyiX[3]=new Vector3f(0.0f,1.0f,-1.0f);
        Vector3f[]dingdianPianyiY=new Vector3f[4];
        dingdianPianyiY[0]=new Vector3f(1.0f,0.0f,1.0f);
        dingdianPianyiY[1]=new Vector3f(1.0f,0.0f,-1.0f);
        dingdianPianyiY[2]=new Vector3f(-1.0f,0.0f,-1.0f);
        dingdianPianyiY[3]=new Vector3f(-1.0f,0.0f,1.0f);
        Vector3f[]dingdianPianyiZ=new Vector3f[4];
        dingdianPianyiZ[0]=new Vector3f(1.0f,1.0f,0.0f);
        dingdianPianyiZ[1]=new Vector3f(-1.0f,1.0f,0.0f);
        dingdianPianyiZ[2]=new Vector3f(-1.0f,-1.0f,0.0f);
        dingdianPianyiZ[3]=new Vector3f(1.0f,-1.0f,0.0f);
        //通過for,集合到三個(gè)數(shù)組
        Point3f[][] vert=new Point3f[6][4];
        Color3f[] color=new Color3f[6];
        String[] imageFile=new String[6];
        for(int i=0;i<=5;i++)
        {
            //計(jì)算該面 顏色和貼圖
            if(compare[i]==compareWith[i])
            {
             presentMianColor=mianColor[i];
             presentImageFile=mianImageFile[i];
         }
            else
            {
                presentMianColor=mianColor[6];
                presentImageFile=mianImageFile[6];
                //如果顏色為白色,不畫該面
                //continue則跳過不畫
                //continue ;
            }
            try
            {
                //System.in.read();//暫停
            }
            catch(Exception e)
            {
            }
            //計(jì)算該面 面心
            mianxin.x=mianxinpianyi[i].x ;
            mianxin.y=mianxinpianyi[i].y ;
            mianxin.z=mianxinpianyi[i].z ;
            //計(jì)算該面 四個(gè)點(diǎn)
            Vector3f[]dingdian=new Vector3f[4];
            for(int j=0;j<=3;j++)
            {
                dingdian[j]=new Vector3f();
                if(i==0||i==1)
                {
                    dingdian[j].x=mianxin.x+dingdianPianyiX[j].x ;
                    dingdian[j].y=mianxin.y+dingdianPianyiX[j].y ;
                    dingdian[j].z=mianxin.z+dingdianPianyiX[j].z ;
                }
                else if(i==2||i==3)
                {
                    dingdian[j].x=mianxin.x+dingdianPianyiY[j].x ;
                    dingdian[j].y=mianxin.y+dingdianPianyiY[j].y ;
                    dingdian[j].z=mianxin.z+dingdianPianyiY[j].z ;
                }
                else if(i==4||i==5)
                {
                    dingdian[j].x=mianxin.x+dingdianPianyiZ[j].x ;
                    dingdian[j].y=mianxin.y+dingdianPianyiZ[j].y ;
                    dingdian[j].z=mianxin.z+dingdianPianyiZ[j].z ;
                }
            }
            //用頂點(diǎn)和顏色畫 該面
            //建面方法一,把vector3D對(duì)象傳進(jìn)去,在里面轉(zhuǎn)化為float數(shù)組
   //Shape3D shape=SomeShape3D.mian1of6CubeShape3D(observer,dingdian,presentImageFile,presentMianColor);
            //建面方法二,把vector3D在這里轉(zhuǎn)化為point3f數(shù)組,再傳進(jìn)去,轉(zhuǎn)換更簡單
           Point3f[] vert1=new Point3f[4];
           Point3f[] vert2=new Point3f[4];
           //4個(gè)點(diǎn)的信息
           for(int k=0;k<=3;k++)
            {
      vert1[k]=new Point3f(SomeShape3D.fangKuaiBanJing*dingdian[k].x ,SomeShape3D.fangKuaiBanJing*dingdian[k].y,SomeShape3D.fangKuaiBanJing*dingdian[k].z);
 vert2[3-k]=new Point3f(SomeShape3D.fangKuaiBanJing*dingdian[k].x ,SomeShape3D.fangKuaiBanJing*dingdian[k].y,SomeShape3D.fangKuaiBanJing*dingdian[k].z);
         }
         Shape3D shape1=SomeShape3D.shapeMaker(observer,presentImageFile,vert1);
         Shape3D shape2=SomeShape3D.shapeMaker(observer,presentImageFile,vert2);
            //兩方法結(jié)果一樣
            //消失現(xiàn)象 可以避免,原因是各面銜接點(diǎn)不重合,dingdian[k].x乘上SomeShape3D.fangKuaiBanJing后有數(shù)據(jù)問題
            //掛到自己的坐標(biāo)系
      myTransGroup.addChild(shape1);
      myTransGroup.addChild(shape2);
            //測試3

         // for(int j=0;j<=3;j++)
          //  {
          // vert[i][j]=new Point3f(SomeShape3D.fangKuaiBanJing*dingdian[j].x ,SomeShape3D.fangKuaiBanJing*dingdian[j].y,SomeShape3D.fangKuaiBanJing*dingdian[j].z);
   // }
       //color[i]=presentMianColor;
          // imageFile[i]=presentImageFile;
        }
                    //測試3
           // SomeShape3D.box3D(observer,myTransGroup,vert,color,imageFile);
        //System.out.println("第"+whickBlockPainted+"塊完畢。");
        System.out.print('.');
        whickBlockPainted++;
    }
    //該塊改變位置
    //Floor:0,1,2
    //totateArg:90 180 -90
    //為了方便計(jì)算,先平移(坐標(biāo)全減1),變換后,再平移還原(坐標(biāo)全加1)
    //該塊改變位置
    //Floor:0,1,2
    //totateArg:90 180 -90
    //為了方便計(jì)算,先平移(坐標(biāo)全減1),變換后,再平移還原(坐標(biāo)全加1)
    void xyzChange(char doType,int mYtotateArg)
    {
        //
        totateArg=mYtotateArg;
        //在處理過程中,原坐標(biāo)先平移
        x-=1 ;
        y-=1 ;
        z-=1 ;
//動(dòng)畫預(yù)處理
yuanx=x;
yuany=y;
yuanz=z;

if(closeDonghua)
{//startDonghuaX();
}
else
//換為用線程執(zhí)行
{
selectedC=doType;
myThread=new Thread(this,"Rotate");
myThread.start();
}
System.out.println("新軸點(diǎn)x計(jì)算并保存。。。");
  //新軸點(diǎn)計(jì)算并保存
//System.out.println("。。。"+xvec.x+xvec.y+xvec.z);
        int[] newvecx=jisuanNextXYZ(doType,totateArg,xvec.x,xvec.y,xvec.z);
//System.out.println("。。。");
        xvec.x=newvecx[0];
        xvec.y=newvecx[1];
        xvec.z=newvecx[2];
System.out.println("新軸點(diǎn)y計(jì)算并保存。。。");
        int[] newvecy=jisuanNextXYZ(doType,totateArg,yvec.x,yvec.y,yvec.z);
        yvec.x=newvecy[0];
        yvec.y=newvecy[1];
        yvec.z=newvecy[2];
        int[] newvecz=jisuanNextXYZ(doType,totateArg,zvec.x,zvec.y,zvec.z);
        zvec.x=newvecz[0];
        zvec.y=newvecz[1];
        zvec.z=newvecz[2];
System.out.println("新坐標(biāo)計(jì)算并保存。。。");
        //新坐標(biāo)計(jì)算
        nexyz=jisuanNextXYZ(doType,totateArg,x,y,z)  ;
        //輸出處理結(jié)果
        System.out.println("\n塊"+(blockIdX-1)+(blockIdY-1)+(blockIdZ-1)+"從"+x+y+z+"  變到  "+nexyz[0]+nexyz[1]+nexyz[2]);
       //新坐標(biāo)保存
        x=nexyz[0]+1;
        y=nexyz[1]+1;
        z=nexyz[2]+

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美日韩在线| 欧美精品乱码久久久久久按摩 | 91.com在线观看| 亚洲午夜久久久久久久久电影网| 在线精品亚洲一区二区不卡| 亚洲电影欧美电影有声小说| 日韩一级二级三级精品视频| 国产乱理伦片在线观看夜一区| 国产女主播视频一区二区| 91亚洲精品久久久蜜桃| 亚洲成va人在线观看| 日韩精品一区二区三区视频| 国产精品系列在线播放| 亚洲欧美另类图片小说| 欧美三级乱人伦电影| 久久国产麻豆精品| 中文字幕+乱码+中文字幕一区| 一本一道综合狠狠老| 日韩精品免费专区| 久久先锋影音av鲁色资源网| 91麻豆精品在线观看| 日本女人一区二区三区| 国产日韩视频一区二区三区| 91成人免费电影| 韩国精品久久久| 一区二区久久久| 欧美va亚洲va| 91女人视频在线观看| 麻豆视频观看网址久久| 亚洲日韩欧美一区二区在线| 欧美一级片免费看| 99久久精品国产观看| 麻豆免费精品视频| 一区二区三区四区精品在线视频| 欧美变态tickle挠乳网站| 91网址在线看| 国产麻豆精品theporn| 亚洲一区二区三区四区五区中文 | 亚洲一区二区精品视频| 久久女同精品一区二区| 欧日韩精品视频| 成人一级视频在线观看| 日本va欧美va精品发布| 亚洲欧美日韩电影| 精品久久久久久久久久久久久久久 | 99久久久久久| 国产主播一区二区| 秋霞影院一区二区| 亚洲大型综合色站| 亚洲色图清纯唯美| 中文字幕av免费专区久久| 日韩一区二区视频在线观看| 在线视频欧美精品| 97精品久久久久中文字幕| 国产福利精品导航| 狠狠色狠狠色综合| 日日摸夜夜添夜夜添亚洲女人| 亚洲色图一区二区三区| 国产精品少妇自拍| 国产农村妇女精品| 久久久午夜精品| 26uuu亚洲综合色欧美 | 欧美xingq一区二区| 欧洲一区在线电影| 91久久精品午夜一区二区| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 成人av综合一区| 国产大片一区二区| 国产精品1区2区3区| 九九精品视频在线看| 麻豆国产欧美日韩综合精品二区 | 亚洲午夜羞羞片| 亚洲美女一区二区三区| 成人欧美一区二区三区视频网页| 中文字幕免费在线观看视频一区| 亚洲精品一区二区三区福利| 精品国产一区a| 精品欧美一区二区在线观看| 日韩丝袜美女视频| 精品日韩av一区二区| 欧美一级精品在线| 日韩三级.com| 日韩免费观看2025年上映的电影| 欧美一级在线观看| 久久久亚洲国产美女国产盗摄| 久久久久久久国产精品影院| 欧美韩日一区二区三区四区| 国产精品国产三级国产aⅴ入口| 国产精品电影院| 一区二区欧美视频| 五月婷婷久久综合| 国内一区二区在线| 本田岬高潮一区二区三区| 色婷婷综合久久久| 欧美一区二区三区啪啪| 精品国产精品一区二区夜夜嗨| 久久久99精品免费观看| 亚洲色图一区二区三区| 首页欧美精品中文字幕| 久久99精品久久只有精品| 成人一区二区三区在线观看| 91高清视频在线| 日韩丝袜情趣美女图片| 日本一区二区动态图| 亚洲一区二区三区四区在线免费观看 | 日韩精品一二三区| 黄色资源网久久资源365| av激情亚洲男人天堂| 欧美亚洲丝袜传媒另类| 日韩亚洲欧美综合| 国产精品三级av| 日韩精品成人一区二区三区| 国产福利一区二区三区| 在线观看一区不卡| 久久综合视频网| 夜色激情一区二区| 久久99精品一区二区三区三区| av一区二区不卡| 精品黑人一区二区三区久久| 中文字幕视频一区| 久久66热re国产| 日本道精品一区二区三区| 欧美大肚乱孕交hd孕妇| 亚洲精品v日韩精品| 久久国产尿小便嘘嘘| 欧美性xxxxxxxx| 国产精品亲子伦对白| 久久精品国产一区二区| 91久久精品网| 国产精品剧情在线亚洲| 麻豆91精品视频| 欧美亚洲一区三区| 国产精品伦一区二区三级视频| 秋霞午夜av一区二区三区| 色综合一个色综合亚洲| 欧美极品少妇xxxxⅹ高跟鞋 | 欧美视频一区在线观看| 中文字幕第一区综合| 麻豆91精品视频| 欧美日韩三级一区二区| 国产精品进线69影院| 国产一区二区91| 欧美一三区三区四区免费在线看 | 亚洲国产成人一区二区三区| 青青草原综合久久大伊人精品优势| 91小视频免费看| 国产精品伦一区| 福利电影一区二区| 26uuu亚洲婷婷狠狠天堂| 午夜激情久久久| 色网站国产精品| 日韩毛片在线免费观看| 成人午夜激情在线| 欧美极品美女视频| 成人午夜短视频| 欧美—级在线免费片| 国产在线视频不卡二| 精品成人私密视频| 国产在线精品国自产拍免费| 精品国产一二三区| 韩国视频一区二区| 欧美videofree性高清杂交| 免费在线视频一区| 日韩欧美在线综合网| 爽爽淫人综合网网站| 666欧美在线视频| 美女视频网站久久| 亚洲精品一区二区三区在线观看| 久久99精品久久只有精品| 精品国产一区二区三区久久久蜜月| 麻豆精品新av中文字幕| 精品处破学生在线二十三| 精品亚洲成av人在线观看| 久久亚洲捆绑美女| 成人精品免费视频| 国产精品理伦片| 91精品办公室少妇高潮对白| 天堂午夜影视日韩欧美一区二区| 欧美日韩电影一区| 日本一不卡视频| 久久这里只有精品首页| 国产成人免费视频| 亚洲欧美一区二区三区极速播放| 91在线视频播放地址| 一区二区三区不卡在线观看| 欧美日韩精品久久久| 久久99精品久久久| 欧美激情在线看| 一本久道久久综合中文字幕| 香蕉久久夜色精品国产使用方法 | 久久综合久久鬼色| www.欧美.com| 午夜a成v人精品| 精品国产免费人成在线观看| 国产成人激情av| 亚洲欧美另类图片小说| 91精品国产综合久久蜜臀 | 成人免费三级在线| 一区二区三区四区五区视频在线观看| 色乱码一区二区三区88|