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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mofang.txt

?? 這個java程序可以實現將任意魔方還原,而且在三維狀態下.
?? TXT
?? 第 1 頁 / 共 5 頁
字號:
 


//存為MoFang.java

import java.applet.Applet ;
import java.awt.*;
import com.sun.j3d.utils.applet.MainFrame ;
import java.awt.BorderLayout ;
import com.sun.j3d.utils.universe.SimpleUniverse ;
import javax.media.j3d.*;
import javax.vecmath.*;
import com.sun.j3d.utils.behaviors.mouse.*;
import com.sun.j3d.utils.behaviors.keyboard.*;
import com.sun.j3d.utils.picking.behaviors.*;
import com.sun.j3d.utils.geometry.*;
import com.sun.j3d.utils.image.TextureLoader ;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame.*;
import javax.swing.*;

 

 


class mySimpleUniverse extends Applet
{
    BranchGroup createSceneGraph(Canvas3D canvas)

    {


        //System.out.print("**1**");

 

 

 

 

        //創建變換組,無用的t3D
        Transform3D t3d=new Transform3D();
        TransformGroup trans=new TransformGroup(t3d);
        trans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
        trans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);

 

 

 

        //創建分枝組
        BranchGroup objRoot=new BranchGroup();

        //測試
        //SomeShape3D.book3D( this, trans);
        SomeShape3D.addText3DDonghua(trans,"魔方",new Point3f(-7.0f,6.0f,6.0f),0.1f,new Color3f(1.0f,0.0f,0.0f),1);

        //初始化數據結構
        System.out.println("\n\n載入方塊,并向變換組中加入每個方塊的坐標系和方塊...");
        for(int i=0;i<=2;i++)
        for(int j=0;j<=2;j++)
        for(int k=0;k<=2;k++)
        {
         int[] p;
         p=Position.getPxyzFromPositionAy(i,j,k,MoFang.positionArray);
            MoFang.blockArray[i][j][k]=new Block(i,j,k,p[0],p[1],p[2],trans,t3d,objRoot,this);
        }
        System.out.println("加入每個方塊的坐標系和方塊,完成.\n");

        //創建大坐標軸,自動加到主坐標系
        SomeShape3D.zuoBiaoZhuBigXShape3D(trans);
        SomeShape3D.zuoBiaoZhuBigYShape3D(trans);
        SomeShape3D.zuoBiaoZhuBigZShape3D(trans);

        //創建邊界對象
        BoundingSphere bounds=new BoundingSphere(new Point3d(0.0,0.0,0.0),100);

        //創建鼠標pick行為,加到分支組objRoot
        PickRotateBehavior pickRotate=new PickRotateBehavior(objRoot,canvas,bounds);
        PickTranslateBehavior pickTranslate=new PickTranslateBehavior(objRoot,canvas,bounds);
        PickZoomBehavior pickZoom=new PickZoomBehavior(objRoot,canvas,bounds);
        //objRoot.addChild(pickRotate);
        objRoot.addChild(pickTranslate);
        //objRoot.addChild(pickZoom);

        //創建鼠標旋轉行為
        MouseRotate behavior=new MouseRotate();
        behavior.setTransformGroup(trans);
        behavior.setSchedulingBounds(bounds);

        //創建鼠標平移行為
        //MouseTranslate myMouseRotate=new MouseTranslate();
        //myMouseRotate.setTransformGroup(trans);
        //myMouseRotate.setSchedulingBounds(bounds);

        //創建鼠標縮放行為
        MouseZoom myMouseZoom=new MouseZoom();
        myMouseZoom.setTransformGroup(trans);
        myMouseZoom.setSchedulingBounds(bounds);

        //創建鍵盤默認行為
        KeyNavigatorBehavior keyNavBeh=new KeyNavigatorBehavior(trans);
        keyNavBeh.setSchedulingBounds(bounds);
        objRoot.addChild(keyNavBeh);

        //白色背景
        Background bg=new Background(new Color3f(0.0f,0.0f,0.0f));
        bg.setApplicationBounds(bounds);
        objRoot.addChild(bg);

        //創建帶材質的背景
        //TextureLoader bgTexture=new TextureLoader("bg3.jpg",this);
        //Background bg=new Background(bgTexture.getImage());
        //bg.setApplicationBounds(bounds);


        //trans.addChild(shape1);//3D物體 加到 變換組
        //trans.addChild(shape2);//3D物體 加到 變換組
        objRoot.addChild(trans);
        //變換組 加到 分枝組
        objRoot.addChild(behavior);
        //鼠標行為  加到 分枝組
        //objRoot.addChild(myMouseRotate);
        //objRoot.addChild(myMouseZoom);
        //objRoot.addChild(bg);//背景 加到 分枝組


        //編譯
        objRoot.compile();
        //回送創建好的帶3D物體的分枝組
        return objRoot ;

    }


    mySimpleUniverse()
    {
        //創建帶控制的畫布
        GraphicsConfiguration config=SimpleUniverse.getPreferredConfiguration();
        Canvas3D c=new Canvas3D(config);
        //創建以畫布為依托的簡單場景圖對象,沒有多個Locale
        SimpleUniverse u=new SimpleUniverse(c);
        u.getViewingPlatform().setNominalViewingTransform();
        //創建分支組對象
        BranchGroup scene=createSceneGraph(c);
        //組裝,分支組 對象加到 場景圖
        u.addBranchGraph(scene);

        //帶場景圖的畫布 加到 本applet中
        setLayout(new BorderLayout());
        add("Center",c);
    }

    //測試碼
    //public static void main(String aregs[])
    //{new MainFrame(new mySimpleUniverse(),200,200);//加applet到應用程序界面
    //}
}

 

 

 

class SomeShape3D
{

    public static float zuoBiaoZhouSmallDingDian=0.09f;//小坐標頂點位置
    public static float zuoBiaoZhouSmallDingXi=0.02f;//小坐標頂點傘的半徑
    public static float zuoBiaoZhouSmallDingChang=0.07f;//小坐標頂點傘的長度
    public static float zuoBiaoZhouSmallWeiDian=-0.09f;//小坐標尾巴的位置

 

    public static float zuoBiaoZhouBigDingDian=1.0f;//大坐標頂點位置
    public static float zuoBiaoZhouBigDingXi=0.04f;//大坐標頂點傘的半徑
    public static float zuoBiaoZhouBigDingChang=0.8f;//大坐標頂點傘的長度
    public static float zuoBiaoZhouBigWeiDian=-1.0f;//大坐標尾巴的位置

 

    public static float fangKuaiBanJing=0.18f;//每個方塊的半徑

 

 

    public static void zuoBiaoZhuBigXShape3D(TransformGroup trans)
    {


        //創建大坐標軸對象

        int i ;
        float x1,x2,y1,y2,z1,z2 ;

         SomeShape3D.addText3DDonghua(trans,"X",new Point3f(zuoBiaoZhouBigDingDian*10,0.0f,0.0f),0.1f,Block.mianColor[0],0);

        Point3f[]vert=new Point3f[41];
        Color3f[]colors=new Color3f[41];
        for(i=0;i<27;i++)
        {
            if(i==0)
            {
                vert[i]=new Point3f(zuoBiaoZhouBigDingDian,0.0f,0.0f);
                colors[i]=Block.mianColor[0];
            }
            else
            {
                z1=(float)(zuoBiaoZhouBigDingXi*Math.cos(i*2*Math.PI/25));
                x1=zuoBiaoZhouBigDingChang;
                y1=(float)(zuoBiaoZhouBigDingXi*Math.sin(i*2*Math.PI/25));
                vert[i]=new Point3f(x1,y1,z1);
                colors[i]=Block.mianColor[0];
            }
        }

        for(i=0;i<14;i++)
        {
            if(i==0)
            {
                vert[27+i]=new Point3f(zuoBiaoZhouBigDingDian,0.0f,0.0f);
                colors[27+i]=Block.mianColor[0];
            }
            else
            {
                z1=(float)(0.01f*Math.cos(i*2*Math.PI/12));
                x1=zuoBiaoZhouBigWeiDian ;
                y1=(float)(0.01f*Math.sin(i*2*Math.PI/12));
                vert[27+i]=new Point3f(x1,y1,z1);
                colors[27+i]=Block.mianColor[1];
            }
        }

 


        int count[]=new int[2];
        count[0]=27 ;
        count[1]=14 ;

        TriangleFanArray tri=new TriangleFanArray(
        vert.length,
        TriangleFanArray.COORDINATES|TriangleStripArray.COLOR_3,
        count
        );
        tri.setCoordinates(0,vert);
        tri.setColors(0,colors);


        Appearance app=new Appearance();

        PolygonAttributes polyAttrib=new PolygonAttributes();
        polyAttrib.setCullFace(PolygonAttributes.CULL_NONE);
        //polyAttrib.setPolygonMode(PolygonAttributes.POLYGON_LINE);
        app.setPolygonAttributes(polyAttrib);

        Shape3D shape=new Shape3D(tri,app);

 

        System.out.print("zuoBiaoZhuBigX 創建 完成\n");

        trans.addChild(shape);


        //到這里,大坐標軸對象創建完成


    }

 


    public static   void zuoBiaoZhuBigYShape3D(TransformGroup trans)
    {


        //創建大坐標軸對象

        int i ;
        float x1,x2,y1,y2,z1,z2 ;

        SomeShape3D.addText3DDonghua(trans,"Y",new Point3f(-1.0f,zuoBiaoZhouBigDingDian*10,0.0f),0.1f,Block.mianColor[2],0);

        Point3f[]vert=new Point3f[41];
        Color3f[]colors=new Color3f[41];
        for(i=0;i<27;i++)
        {
            if(i==0)
            {
                vert[i]=new Point3f(0.0f,zuoBiaoZhouBigDingDian,0.0f);
                colors[i]=Block.mianColor[2];
            }
            else
            {
                x1=(float)(zuoBiaoZhouBigDingXi*Math.cos(i*2*Math.PI/25));
                y1=zuoBiaoZhouBigDingChang;
                z1=(float)(zuoBiaoZhouBigDingXi*Math.sin(i*2*Math.PI/25));
                vert[i]=new Point3f(x1,y1,z1);
                colors[i]=Block.mianColor[2];
            }
        }

        for(i=0;i<14;i++)
        {
            if(i==0)
            {
                vert[27+i]=new Point3f(0.0f,zuoBiaoZhouBigDingDian,0.0f);
                colors[27+i]=Block.mianColor[2];
            }
            else
            {
                x1=(float)(0.01f*Math.cos(i*2*Math.PI/12));
                y1=zuoBiaoZhouBigWeiDian ;
                z1=(float)(0.01f*Math.sin(i*2*Math.PI/12));
                vert[27+i]=new Point3f(x1,y1,z1);
                colors[27+i]=Block.mianColor[3];
            }
        }

 


        int count[]=new int[2];
        count[0]=27 ;
        count[1]=14 ;

        TriangleFanArray tri=new TriangleFanArray(
        vert.length,
        TriangleFanArray.COORDINATES|TriangleStripArray.COLOR_3,
        count
        );
        tri.setCoordinates(0,vert);
        tri.setColors(0,colors);


        Appearance app=new Appearance();

        PolygonAttributes polyAttrib=new PolygonAttributes();
        polyAttrib.setCullFace(PolygonAttributes.CULL_NONE);
        //polyAttrib.setPolygonMode(PolygonAttributes.POLYGON_LINE);
        app.setPolygonAttributes(polyAttrib);

        Shape3D shape=new Shape3D(tri,app);

 

        System.out.print("zuoBiaoZhuBigY 創建 完成\n");

        trans.addChild(shape);


        //到這里,大坐標軸對象創建完成


    }

 


    public static  void  zuoBiaoZhuBigZShape3D(TransformGroup trans)
    {


        //創建大坐標軸對象

        int i ;
        float x1,x2,y1,y2,z1,z2 ;
 SomeShape3D.addText3DDonghua(trans,"Z",new Point3f(-1.0f,0.0f,zuoBiaoZhouBigDingDian*10),0.1f,Block.mianColor[4],0);

        Point3f[]vert=new Point3f[41];
        Color3f[]colors=new Color3f[41];
        for(i=0;i<27;i++)
        {
            if(i==0)
            {
                vert[i]=new Point3f(0.0f,0.0f,zuoBiaoZhouBigDingDian);
                colors[i]=Block.mianColor[4];
            }
            else
            {
                y1=(float)(zuoBiaoZhouBigDingXi*Math.cos(i*2*Math.PI/25));
                z1=zuoBiaoZhouBigDingChang;
                x1=(float)(zuoBiaoZhouBigDingXi*Math.sin(i*2*Math.PI/25));
                vert[i]=new Point3f(x1,y1,z1);
                colors[i]=Block.mianColor[4];
            }
        }

        for(i=0;i<14;i++)
        {
            if(i==0)
            {
                vert[27+i]=new Point3f(0.0f,0.0f,zuoBiaoZhouBigDingDian);
                colors[27+i]=Block.mianColor[4];
            }
            else
            {
                y1=(float)(0.01f*Math.cos(i*2*Math.PI/12));
                z1=zuoBiaoZhouBigWeiDian ;
                x1=(float)(0.01f*Math.sin(i*2*Math.PI/12));
                vert[27+i]=new Point3f(x1,y1,z1);
                colors[27+i]=Block.mianColor[5];
            }
        }

 


        int count[]=new int[2];
        count[0]=27 ;
        count[1]=14 ;

        TriangleFanArray tri=new TriangleFanArray(
        vert.length,
        TriangleFanArray.COORDINATES|TriangleStripArray.COLOR_3,
        count
        );
        tri.setCoordinates(0,vert);
        tri.setColors(0,colors);


        Appearance app=new Appearance();

        PolygonAttributes polyAttrib=new PolygonAttributes();
        polyAttrib.setCullFace(PolygonAttributes.CULL_NONE);
        //polyAttrib.setPolygonMode(PolygonAttributes.POLYGON_LINE);
        app.setPolygonAttributes(polyAttrib);

        Shape3D shape=new Shape3D(tri,app);

 

        System.out.print("zuoBiaoZhuBigZ 創建 完成\n");

        trans.addChild(shape);


        //到這里,大坐標軸對象創建完成


    }


    public static  void  zuoBiaoZhuSmallXShape3D(TransformGroup trans)
    {


        //創建小坐標軸對象

        int i ;
        float x1,x2,y1,y2,z1,z2 ;

        Point3f[]vert=new Point3f[41];
        Color3f[]colors=new Color3f[41];
        for(i=0;i<27;i++)
        {
            if(i==0)
            {
                vert[i]=new Point3f(zuoBiaoZhouSmallDingDian,0.0f,0.0f);
                colors[i]=Block.mianColor[0];
            }
            else
            {
                z1=(float)(zuoBiaoZhouSmallDingXi*Math.cos(i*2*Math.PI/25));
                x1=zuoBiaoZhouSmallDingChang ;
                y1=(float)(zuoBiaoZhouSmallDingXi*Math.sin(i*2*Math.PI/25));
                vert[i]=new Point3f(x1,y1,z1);
                colors[i]=Block.mianColor[0];
            }
        }

        for(i=0;i<14;i++)
        {
            if(i==0)
            {
                vert[27+i]=new Point3f(zuoBiaoZhouSmallDingDian,0.0f,0.0f);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丰满亚洲少妇av| 亚洲激情图片一区| 国产一区二区免费视频| 日韩欧美国产三级| 国产精品一卡二卡在线观看| 国产日韩视频一区二区三区| av亚洲产国偷v产偷v自拍| 久久成人精品无人区| 2023国产精华国产精品| 不卡一区在线观看| 夜夜精品视频一区二区| 欧美一区二区三区视频免费播放| 久久国产人妖系列| 国产精品久久久久久久裸模| 欧美在线免费观看视频| 久久精品国产精品亚洲红杏 | 免费在线观看一区二区三区| 91麻豆精品国产综合久久久久久| 久久国产免费看| 国产精品美女久久久久aⅴ | 成人小视频在线观看| 一区二区免费在线| 欧美一区二区啪啪| 粉嫩蜜臀av国产精品网站| 亚洲国产综合人成综合网站| 欧美成人一级视频| 99热这里都是精品| 日韩电影免费一区| 亚洲品质自拍视频网站| 精品欧美一区二区在线观看| 成人av资源网站| 免费在线观看日韩欧美| 亚洲日本丝袜连裤袜办公室| 欧美一二三在线| av电影在线观看不卡| 九一久久久久久| 一区二区三区日本| 国产欧美一区二区精品仙草咪| 在线观看日韩av先锋影音电影院| 国产在线播精品第三| 一区二区三区不卡视频| 久久人人97超碰com| 欧美日本在线播放| aaa亚洲精品| 国产老妇另类xxxxx| 亚洲国产精品精华液网站| 国产精品美女www爽爽爽| 欧美成人精品福利| 欧美日韩在线精品一区二区三区激情 | 日韩在线一二三区| 亚洲精品成a人| 欧美激情一区二区三区四区| 欧美一级片免费看| 欧美日韩一级二级三级| 91视视频在线观看入口直接观看www | 男人的天堂亚洲一区| 亚洲一区欧美一区| 国产精品国产馆在线真实露脸| 日韩欧美高清一区| 欧美日本韩国一区二区三区视频| 色综合久久中文字幕| 波多野结衣欧美| 成人免费视频视频在线观看免费 | 日韩av在线免费观看不卡| 亚洲精品福利视频网站| 日韩美女视频19| 国产精品久久久久久久久晋中| 国产亚洲成aⅴ人片在线观看| 亚洲精品在线免费观看视频| 91麻豆精品国产91久久久资源速度 | 67194成人在线观看| 欧美性xxxxxx少妇| 在线观看日韩av先锋影音电影院| 一本久久精品一区二区| 一本色道久久综合亚洲aⅴ蜜桃| 暴力调教一区二区三区| av成人免费在线| 91色视频在线| 一本久道中文字幕精品亚洲嫩| 色成人在线视频| 欧美三级日韩在线| 91麻豆精品国产91久久久更新时间| 欧美午夜精品一区二区三区| 欧美性色黄大片手机版| 欧美美女一区二区| 欧美一区二区美女| 2023国产精品| 国产精品高潮呻吟| 亚洲在线视频网站| 日日摸夜夜添夜夜添亚洲女人| 视频精品一区二区| 蜜桃久久精品一区二区| 国产一区二区福利视频| 国产成人免费xxxxxxxx| 99re热视频精品| 欧美色图在线观看| 日韩三级视频在线看| 久久久久久久综合狠狠综合| 国产精品久久久久久久午夜片| 自拍偷拍欧美激情| 日日夜夜免费精品| 国产精品一区在线观看你懂的| 成人开心网精品视频| 在线视频中文字幕一区二区| 欧美精品久久99久久在免费线| 欧美一区二区三区日韩视频| 久久综合久久综合亚洲| 国产精品卡一卡二卡三| 亚洲综合色噜噜狠狠| 久久国产三级精品| 成人黄色免费短视频| 色狠狠桃花综合| 日韩欧美国产不卡| 亚洲卡通欧美制服中文| 日本aⅴ精品一区二区三区| 国产精品99久久久久久宅男| 色综合天天综合色综合av | 亚洲精品视频自拍| 免费亚洲电影在线| 91影院在线免费观看| 在线不卡一区二区| 中文av一区二区| 免费xxxx性欧美18vr| 99久久久免费精品国产一区二区| 欧美日韩综合一区| 欧美国产97人人爽人人喊| 亚洲成人综合网站| 国产91对白在线观看九色| 欧美亚洲国产怡红院影院| 久久久www成人免费无遮挡大片| 亚洲激情自拍偷拍| 国产精品白丝jk黑袜喷水| 欧美日韩一区二区三区不卡| 国产午夜精品理论片a级大结局 | 亚洲欧洲日产国码二区| 麻豆91在线看| 欧美精品在线观看一区二区| 中文久久乱码一区二区| 免费人成在线不卡| 在线观看一区日韩| 亚洲欧洲精品一区二区精品久久久 | 一区二区三区免费在线观看| 国模套图日韩精品一区二区| 欧美日韩精品一区二区| 中文字幕在线播放不卡一区| 久久99国产精品尤物| 欧美精品日韩一本| 一区二区三区四区蜜桃| 不卡区在线中文字幕| 久久精品一二三| 久久国产尿小便嘘嘘尿| 宅男噜噜噜66一区二区66| 亚洲国产日韩在线一区模特| 9人人澡人人爽人人精品| 日本一区二区三区dvd视频在线| 日韩国产欧美三级| 欧美日韩亚洲不卡| 一区二区三区精品视频| 色丁香久综合在线久综合在线观看| 国产欧美精品一区二区三区四区| 久久99精品久久久久| 日韩欧美不卡一区| 久热成人在线视频| 欧美一级片免费看| 伦理电影国产精品| 7777女厕盗摄久久久| 日韩精品一二三四| 欧美丰满一区二区免费视频| 亚洲国产综合在线| 欧美男生操女生| 免费看黄色91| 日韩视频免费观看高清在线视频| 日韩高清欧美激情| 91麻豆精品国产综合久久久久久 | 国产在线麻豆精品观看| 精品999久久久| 国产精品12区| 国产精品你懂的在线欣赏| 92精品国产成人观看免费| 亚洲精品综合在线| 欧美视频在线一区二区三区| 午夜欧美2019年伦理| 日韩视频123| 国产精品香蕉一区二区三区| 国产精品久久久久久久久免费相片| 高清不卡一二三区| 亚洲美女视频一区| 欧美猛男男办公室激情| 麻豆精品在线观看| 国产欧美一区二区在线观看| 色综合中文字幕| 午夜国产精品一区| 2024国产精品| 91亚洲永久精品| 石原莉奈在线亚洲二区| 欧美精品一区二区三区四区| 成人av网站免费| 亚洲一区中文在线| 精品久久久久久最新网址| 成人性视频网站|