<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Sealyu

    --- 博客已遷移至: http://www.sealyu.com/blog

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks
    DDM君,F(xiàn)lab3D.com (允許轉(zhuǎn)載,轉(zhuǎn)載請注明)

      所有PV3D三維模型都是繼承至DisplayObject3D類,所以所有三維模型都有同樣的移動,旋轉(zhuǎn),縮放的方法/屬性。(如果不理解什么叫繼承可以無視這句話=_=)講這句的意思是“攝像機(jī)這些也是DisplayObject3D”,所以也可以做同樣的操作。

    我們第一篇的小球在這里不是特別能明顯表示下面的區(qū)別。所以我們這次用個立方體Cube。

    原理介紹:

    先記下上面這個圖,它保證我們不迷失在三維的世界里,如果你正好是maya,3dsmax的使用,恭喜你!和里面的道理一模一樣。

    移動:
    cube.x  //物體在世界坐標(biāo)的X軸位置
    cube.y  //物體在世界坐標(biāo)的Y軸位置
    cube.z  //物體在世界坐標(biāo)的Z軸位置
    pv3d的三維坐標(biāo) 圖1

    cube.moveForward(一定距離) //向物體本地Z的正方向移動
    cube.moveBackward(一定距離) //向物體本地Z的負(fù)方向移動
    cube.moveDown(一定距離)//向物體本地Y的負(fù)方向移動
    cube.moveUp(一定距離)//向物體本地Y的正方向移動
    cube.moveLeft(一定距離)//向物體本地X的負(fù)方向移動
    cube.moveRight(一定距離)////向物體本地X的正方向移動

    這兩種有什么區(qū)別呢?其實(shí)就是world和local坐標(biāo)系的區(qū)別,上面那張圖應(yīng)該能幫助您理解。

    旋轉(zhuǎn):
    cube.rotationX  //物體繞世界坐標(biāo)的X軸,順時針旋轉(zhuǎn)
    cube.rotationY  //物體繞世界坐標(biāo)的Y軸,順時針旋轉(zhuǎn)
    cube.rotationZ  //物體繞世界坐標(biāo)的Z軸,順時針旋轉(zhuǎn)

    cube.yaw(一定角度)  //以本地的Y為軸心,順時針旋轉(zhuǎn)
    cube.pitch(一定角度)  //以本地的X為軸心,順時針旋轉(zhuǎn)
    cube.roll(一定角度)  //以本地的Z為軸心,順時針旋轉(zhuǎn)
    (yaw-pitch-roll其實(shí)是歐拉角euler的一種描述方法,愿意研究圖形數(shù)學(xué)可以到網(wǎng)上百科查詢具體含義,我們flash3d研究所以后也會在圖形學(xué)原理里放出關(guān)于三種旋轉(zhuǎn)方式和萬向節(jié)鎖gimbal-lock的相關(guān)資料)

    這兩種有什么區(qū)別呢?還是自己嘗試嘗試吧~不要放棄任何一種哦,都是每天都會用到的東西。

    縮放:(默認(rèn)下,單位為1,2,3…倍這種,不是百分比)
    cube.scaleX  //物體延X軸放大
    cube.scaleY  //物體延Y軸放大
    cube.scaleZ  //物體延Z軸放大
    這是分別延x,y,z的縮放,如果要整體縮放,直接用下面這個就可以了。
    cube.scale  //物體整體放大

    代碼流程:
    仍然有困難寫出代碼的朋友,可以 下載源代碼

    和上次一樣,建包,放傻瓜包,然后初始化最基礎(chǔ)的4要素。不想重新來一次的可以就修改上次的^_^。如果不記得了可以看 《第一篇 人人都能PV3D》—點(diǎn)擊到第一篇
    我們這次要添加一個cube(立方體)。

    cube=new Cube(new MaterialsList({all:new BitmapFileMaterial('map.jpg')}),500,500,500,3,3,3);
    介紹一下生成立方體的構(gòu)造器,和我們第一篇的球體少許不同。
    第一個參數(shù)需要一個‘材質(zhì)列表’(MaterialsList),而不是像我們上次小球只要單個材質(zhì)。(不理解材質(zhì)列表暫時沒關(guān)系,其實(shí)它就是一個很多單個材質(zhì)添加在一起的‘數(shù)組’或object。我們以后會在中級研究中作一些具體分析)
    參數(shù)二,參數(shù)三,參數(shù)四分別是立方體的寬,長,高。
    參數(shù)五,參數(shù)六,參數(shù)七分別是決定長寬高有多少段(段數(shù)越多運(yùn)行越慢,但是貼圖變形越小,越準(zhǔn)確)。

    因為需要用‘材質(zhì)列表’(MaterialsList),所以開始要記得把MaterialsList類導(dǎo)入進(jìn)來。
    import org.papervision3d.materials.utils.MaterialsList;
    當(dāng)然,也得把立方體的類導(dǎo)入
    import org.papervision3d.objects.primitives.Cube;

    為了能更清楚的測試這些控制的含義,我在初始化的時候先給立方體了一個角度。
    cube.rotationX=30;
    cube.rotationY=30;

    enterframe里面就可以測試我們學(xué)到的各種操作了。
    屬性需要這樣寫才能累加,才能看到動畫變化:
    cube.x+=10;
    方法直接寫就可以了:
    cube.MoveForward(10);

     這次的也非常簡單吧,記住它們,熟悉它們,因為我們每天都會用到。
    好好練習(xí)哦~加油!
    有任何不清楚的地方,歡迎到討論區(qū)發(fā)言。(無需注冊)

    DDM君
    Flab3D.com

    Flash3d研究所推薦的Pv3d傻瓜包下載
    源文件下載

    posted on 2008-11-19 19:36 seal 閱讀(602) 評論(0)  編輯  收藏 所屬分類: Flex+ActionScript
    主站蜘蛛池模板: 国产成人免费片在线观看| 美女隐私免费视频看| 亚洲伊人久久大香线蕉综合图片| 曰曰鲁夜夜免费播放视频| baoyu777永久免费视频| 男男gay做爽爽的视频免费| 亚洲一区精品视频在线| 亚洲va在线va天堂va不卡下载| 亚洲成片观看四虎永久| 日韩成人免费视频播放| 一二三四在线播放免费观看中文版视频 | 亚洲精品午夜久久久伊人| 亚洲乱码精品久久久久..| 免费少妇a级毛片| 蜜桃精品免费久久久久影院| 无码免费午夜福利片在线| 91精品国产免费| 久草免费福利资源站| 丝袜捆绑调教视频免费区| 国产va免费精品| 免费人成动漫在线播放r18| 亚洲Av永久无码精品黑人| 亚洲熟妇AV乱码在线观看| 久久亚洲最大成人网4438| 亚洲午夜电影在线观看高清 | 亚洲AV无码国产精品永久一区| 亚洲免费网站在线观看| 亚洲国产中文在线二区三区免| 亚洲精品偷拍无码不卡av| 久久综合亚洲鲁鲁五月天| 99亚洲精品高清一二区| 91在线亚洲精品专区| 亚洲最新中文字幕| 亚洲精品中文字幕无乱码麻豆| 亚洲伊人久久大香线蕉结合| 国产精品亚洲一区二区麻豆| 亚洲中文字幕无码亚洲成A人片| 亚洲色www永久网站| 亚洲精品一卡2卡3卡四卡乱码| 性色av极品无码专区亚洲| 成年网站免费入口在线观看|