• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            Cpper
            C/C++高級工程師 Android高級軟件工程師 IT集成工程師 音頻工程師 熟悉c,c++,java,c#,py,js,asp等多種語言 程序猿
            考慮到在應用中有好幾個坐標系統比如opengl,3dx,當然用戶也可能有自己的坐標系統
            考慮如此,我覺得還是把引擎的坐標系統不要局限于特定的一個坐標系
            這是我寫的引擎坐標系統如下:
             1 ///////////////////////////////////////////////////////////
             2 /// 頭文件包含
             3 ///////////////////////////////////////////////////////////
             4 
             5 namespace core
             6 {
             7 
             8 ////////////////////////////////////////////////////////////
             9 /// 坐標軸枚舉
            10 //////////////////////////////////////////////////////////// 
            11 enum AXIS_TYPE
            12 {
            13     AXIS_X = 1;
            14     AXIS_Y = 1 << 2;
            15     AXIS_Z = 1 << 4
            16 };
            17 
            18 ////////////////////////////////////////////////////////////
            19 /// 坐標軸方向枚舉
            20 //////////////////////////////////////////////////////////// 
            21 enum AXIS_DIRECTION
            22 {
            23     AXIS_DIRECTION_UP   = 1,
            24     AXIS_DIRECTION_DOWN = -1
            25 };
            26 
            27 ////////////////////////////////////////////////////////////
            28 /// 定義引擎坐標系統
            29 //////////////////////////////////////////////////////////// 
            30 ////////////////////////////////////////////////////////////
            31 /// 引擎的坐標系統定義如下:
            32 ///     以指向屏幕右方的坐標軸為第一坐標軸(1)
            33 ///     以指向屏幕下方的坐標軸為第二坐標軸(2)
            34 ///     以垂直屏幕向外的坐標系統為第三坐標軸(3)
            35 ///     以方向相反的坐標軸其方向為負(-1)
            36 //////////////////////////////////////////////////////////// 
            37 struct  CoordinateSystem
            38 {   
            39     CoordinateSystem()
            40     {
            41         type[0= AXIS_X;
            42         type[1= AXIS_Y;
            43         type[2= AXIS_Z;
            44         dir[0= dir[1= dir[2= AXIS_DIRECTION_UP
            45     }
            46     
            47     CoordinateSystem(AXIS_TYPE type1, AXIS_DIRECTION dir1,
            48                      AXIS_TYPE type2, AXIS_DIRECTION dir2,
            49                      AXIS_TYPE type3, AXIS_DIRECTION dir3)
            50     {
            51         //! 必須保證參數坐標軸的合法性
            52         ASSERT(type1 + type2 + type3 == 13);
            53         
            54         type[0= type1;
            55         type[1= type2;
            56         type[2= type3;
            57         dir[0]  = dir1;
            58         dir[1]  = dir2;
            59         dir[2]  = dir3;         
            60     }                 
            61     
            62     AXIS_TYPE       type[3];
            63     AXIS_DIRECTION  dir[3];    
            64 };
            65 
            66 }
            67 
            68 #define COORDINATE_ENGINE  core::CoordinateSystem(AXIS_X,1,AXIS_Y, 1,AXIS_Z, 1)
            69 #define COORDINATE_OPENGL  core::CoordinateSystem(AXIS_X,1,AXIS_Y,-1,AXIS_Z, 1) 
            70 #define COORDINATE_3DMAX   core::CoordinateSystem(AXIS_X,1,AXIS_Z,-1,AXIS_Y,-1)
            首先給坐標系統排一個次序,然后定義正向的坐標軸方向,然后就可以抽象出萬能的直角坐標系統了
            當然為了方便起見這里給定了3個常見的坐標系統分別為引擎坐標系,OPENGL坐標系統和3dmax坐標系統
            posted on 2010-02-08 21:12 ccsdu2009 閱讀(989) 評論(1)  編輯 收藏 引用
            Comments
            • # re: 蓋莫游戲引擎中的坐標系統設計
              ccsdu2009
              Posted @ 2010-02-08 21:24
               1 ////////////////////////////////////////////////////////////
               2 /// 坐標軸枚舉
               3 //////////////////////////////////////////////////////////// 
               4 enum AXIS_TYPE
               5 {
               6     AXIS_X = 1,
               7     AXIS_Y = 1 << 2,
               8     AXIS_Z = 1 << 4 
               9 };
              10 
              11 ////////////////////////////////////////////////////////////
              12 /// 坐標軸方向枚舉
              13 //////////////////////////////////////////////////////////// 
              14 enum AXIS_DIRECTION
              15 {
              16     AXIS_DIRECTION_UP   = 1,
              17     AXIS_DIRECTION_DOWN = -1
              18 };
                回復  更多評論   
             
            久久精品国产AV一区二区三区| 久久久久18| 久久99久国产麻精品66| 亚洲精品白浆高清久久久久久| 亚洲精品无码久久久久久| 久久精品国产亚洲欧美| 久久久久亚洲AV无码专区网站| 久久精品国产亚洲AV忘忧草18| 久久久亚洲欧洲日产国码二区| 国产免费久久精品丫丫| 国产免费久久精品99re丫y| 久久99久久99精品免视看动漫| 久久精品国产精品亚洲| 色综合久久久久无码专区 | 久久精品视频91| 色综合久久综合中文综合网| 久久AAAA片一区二区| 国色天香久久久久久久小说| 久久精品国产亚洲网站| 久久精品国产免费观看| 国产成人AV综合久久| 人妻丰满AV无码久久不卡| 久久久久无码国产精品不卡| 77777亚洲午夜久久多喷| 久久人人爽人人人人爽AV | 久久久免费观成人影院| 久久国产精品成人片免费| 国产精品久久婷婷六月丁香| 狠狠色丁香婷婷综合久久来来去| 中文字幕久久波多野结衣av| 久久国产免费| 久久成人国产精品一区二区| 99久久99这里只有免费费精品| 久久人与动人物a级毛片| 久久综合久久伊人| 久久久无码精品午夜| 成人午夜精品久久久久久久小说| 狼狼综合久久久久综合网| 亚洲国产精品久久久天堂 | 精品乱码久久久久久夜夜嗨| 久久久中文字幕|