青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Cpper
C/C++高級(jí)工程師 Android高級(jí)軟件工程師 IT集成工程師 音頻工程師 熟悉c,c++,java,c#,py,js,asp等多種語(yǔ)言 程序猿
接著上文繼續(xù)學(xué)習(xí)ode物理引擎的函數(shù)和數(shù)據(jù)結(jié)構(gòu)O(∩_∩)O~
15.剛體對(duì)象的啟用和禁止
剛體對(duì)象可以被啟用或者禁止
禁止剛體對(duì)象則在仿真過(guò)程中剛體不參與仿真
如果啟用自禁止的話,那么剛體對(duì)象會(huì)在給定仿真步中idle(如何翻譯?)
如果啟用自動(dòng)禁止的話,那么當(dāng)剛體線速度和角速度同時(shí)小于給定閾值之時(shí)被禁止
1 void dBodyEnable (dBodyID);
2 void dBodyDisable (dBodyID);
3 int dBodyIsEnabled (dBodyID);
4 void dBodySetAutoDisableFlag (dBodyID, int do_auto_disable);
5 int dBodyGetAutoDisableFlag (dBodyID);
1void dBodySetAutoDisableAngularThreshold (dBodyID, dReal angular_threshold);
2dReal dBodyGetAutoDisableAngularThreshold (dBodyID);
3void dBodySetAutoDisableLinearThreshold (dBodyID, dReal linear_threshold);
4dReal dBodyGetAutoDisableLinearThreshold (dBodyID);
需要確保的是線速度和角速度要小于給定的閾值
16.幾個(gè)雜項(xiàng)函數(shù)
 
1 void dBodySetData (dBodyID, void *data);
2 void *dBodyGetData (dBodyID);
設(shè)置,和獲取剛體數(shù)據(jù)
1 int dBodyGetNumJoints (dBodyID b);
獲取關(guān)聯(lián)到物體上的關(guān)節(jié)個(gè)數(shù)
1 dJointID dBodyGetJoint (dBodyID, int index);
獲取給物體上定標(biāo)號(hào)的關(guān)節(jié)句柄
1 void dBodySetGravityMode (dBodyID b, int mode);
2 int dBodyGetGravityMode (dBodyID b);
設(shè)置和獲取物體是否受重力影響(默認(rèn)為是)
1 void dMakeRandomVector (dReal *A, int n, dReal range);

獲取n個(gè)范圍在+-rang中的隨機(jī)變量

17.矩陣操作
-- 在任何引擎中矩陣都是必不可少的

 1 void dRSetIdentity (dMatrix3 R);
 2 void dRFromAxisAndAngle (dMatrix3 R, dReal ax, dReal ay, dReal az,dReal angle);
 3 void dRFromEulerAngles (dMatrix3 R, dReal phi, dReal theta, dReal psi);
 4 void dRFrom2Axes (dMatrix3 R, dReal ax, dReal ay, dReal az,dReal bx, dReal by, dReal bz);
 5 void dRFromZAxis (dMatrix3 R, dReal ax, dReal ay, dReal az);
 6 void dQSetIdentity (dQuaternion q);
 7 void dQFromAxisAndAngle (dQuaternion q, dReal ax, dReal ay, dReal az,dReal angle);
 8 void dQMultiply0 (dQuaternion qa, const dQuaternion qb, const dQuaternion qc);
 9 void dQMultiply3 (dQuaternion qa, const dQuaternion qb, const dQuaternion qc);
10 void dRfromQ (dMatrix3 R, const dQuaternion q);
11 void dQfromR (dQuaternion q, const dMatrix3 R);
12 void dDQfromW (dReal dq[4], const dVector3 w, const dQuaternion q);
這些函數(shù)為別是:
設(shè)置為單位矩陣,
從給定軸和角度或者矩陣
從歐拉角到矩陣
...

18.ode關(guān)節(jié)
 1 dJointID dJointCreateBall (dWorldID, dJointGroupID);
 2 dJointID dJointCreateHinge (dWorldID, dJointGroupID);
 3 dJointID dJointCreateSlider (dWorldID, dJointGroupID);
 4 dJointID dJointCreateContact (dWorldID, dJointGroupID,
 5 const dContact *);
 6 dJointID dJointCreateUniversal (dWorldID, dJointGroupID);
 7 dJointID dJointCreateHinge2 (dWorldID, dJointGroupID);
 8 dJointID dJointCreateFixed (dWorldID, dJointGroupID);
 9 dJointID dJointCreateAMotor (dWorldID, dJointGroupID);
10 void dJointDestroy (dJointID);
可以看出ode中定義的關(guān)機(jī)類型有Ball,Hinge,Slider,...
對(duì)關(guān)節(jié)的銷(xiāo)毀動(dòng)作為斷開(kāi)所有連接的引擎物體,再銷(xiāo)毀關(guān)節(jié)
1 dJointGroupID dJointGroupCreate (int max_size);
2 void dJointGroupDestroy (dJointGroupID);
3 void dJointGroupEmpty (dJointGroupID);
4 
第一個(gè)函數(shù)中的max_size目前必須是(0)這是為了和以前兼容
銷(xiāo)毀關(guān)節(jié)和清空關(guān)節(jié)點(diǎn)區(qū)別在于銷(xiāo)毀會(huì)銷(xiāo)毀關(guān)節(jié)組中所有的關(guān)節(jié)對(duì)象和銷(xiāo)毀關(guān)節(jié)組,而清空關(guān)節(jié)組則只是銷(xiāo)毀所有的關(guān)節(jié)對(duì)象
1 void dJointAttach (dJointID, dBodyID body1, dBodyID body2);
使用給定關(guān)節(jié)連接2個(gè)物理對(duì)象,如果關(guān)節(jié)先前是連接的則斷開(kāi)之,如果body1或者body2有1個(gè)為0則說(shuō)明把對(duì)象連接對(duì)靜態(tài)環(huán)境中去
1 void dJointSetData (dJointID, void *data);
2 void *dJointGetData (dJointID);
設(shè)置關(guān)節(jié)數(shù)據(jù)沒(méi)什么好說(shuō)的
1 int dJointGetType (dJointID);
獲取給定關(guān)節(jié)的關(guān)節(jié)類型
可能的類型有
dJointTypeBall         A ball-and-socket joint.
dJointTypeHinge      A hinge joint.
dJointTypeSlider      A slider joint.
dJointTypeContact   A contact joint.
dJointTypeUniversal A universal joint.
dJointTypeHinge2    A hinge-2 joint.
dJointTypeFixed      A fixed joint.
dJointTypeAMotor  An angular motor joint.
1 dBodyID dJointGetBody (dJointID, int index);
獲取關(guān)節(jié)給定索引的連接物理對(duì)象(以0索引起始)
1 int dAreConnected (dBodyID, dBodyID);
檢測(cè)2個(gè)問(wèn)題是不是別連接了

19.關(guān)節(jié)接觸;
ode用戶指南的原文是:
The contact joint prevents body 1 and body 2 from inter-penetrating at the contact point. It does this by
only allowing the bodies to have an "outgoing "velocity in the direction of the contact normal. Contact joints
typically have a lifetime of one time step. They are created and deleted in response to collision detection.
Contact joints can simulate friction at the contact by applying special forces in the two friction directions
that are perpendicular to the normal.When a contact joint is created, a dContact structure must be supplied. This has the following definition:
接觸關(guān)節(jié)預(yù)防碰撞對(duì)象的"刺穿"問(wèn)題,當(dāng)接觸關(guān)節(jié)產(chǎn)生的時(shí)候,其必要的數(shù)據(jù)元素必須被標(biāo)記
1 struct dContact {
2 dSurfaceParameters surface;
3 dContactGeom geom;
4 dVector3 fdir1;
5 };
goem是碰撞函數(shù)設(shè)置的數(shù)據(jù)結(jié)構(gòu)其中包含了:
碰撞點(diǎn),碰撞法向矢量和碰撞的2個(gè)對(duì)象id
而fdir是第一摩擦力方向(其方向和摩擦力方向是相同的),同時(shí)也是垂直于接觸面法向矢量的.
當(dāng)且僅當(dāng)surface.mode = dContactFDir1時(shí)期需要被定義
而第二摩擦力方向則是由第一摩擦里方向和接觸面方向矢量計(jì)算的正交向量
其中的dSurfaceParameters surface是由用戶設(shè)置的數(shù)據(jù)結(jié)構(gòu)
其數(shù)據(jù)結(jié)構(gòu)為:
 1 typedef struct dSurfaceParameters {
 2   /* must always be defined */
 3   int mode;
 4   dReal mu;
 5 
 6   /* only defined if the corresponding flag is set in mode */
 7   dReal mu2;
 8   dReal bounce;
 9   dReal bounce_vel;
10   dReal soft_erp;
11   dReal soft_cfm;
12   dReal motion1,motion2;
13   dReal slip1,slip2;
14 } dSurfaceParameters;
其中的mode必須被標(biāo)記
mu和mu2取值為(0 to dInfinity.)
如果沒(méi)有設(shè)置mu2,則使用mu為2個(gè)摩擦力方向
如果設(shè)置了mu2則使用mu為第一個(gè)摩擦力方向使用mu2為第二摩擦力方向
如果設(shè)置了fdir1則使用fdir作為第一摩擦力方向要不然則自動(dòng)獲取其值
bounce表明其為彈性表面也就是說(shuō)碰撞對(duì)象會(huì)相互彈起(取值0-1)0標(biāo)明完全沒(méi)有彈性
soft_erp控制的是接觸表面的erp,這個(gè)值可以設(shè)置柔性表面
soft_cfm控制的是柔性表面的最大cfm
其他參數(shù)以后再介紹之

20.幾何體對(duì)象
幾何體是檢測(cè)系統(tǒng)中的基本單元
幾何體的銷(xiāo)毀和生成
 1 void dGeomDestroy (dGeomID);
 2 void dGeomSetData (dGeomID, void *);
 3 void *dGeomGetData (dGeomID);
 4 void dGeomSetBody (dGeomID, dBodyID);
 5 dBodyID dGeomGetBody (dGeomID);
 6 void dGeomSetPosition (dGeomID, dReal x, dReal y, dReal z);
 7 void dGeomSetRotation (dGeomID, const dMatrix3 R);
 8 void dGeomSetQuaternion (dGeomID, const dQuaternion);
 9 const dReal * dGeomGetPosition (dGeomID);
10 const dReal * dGeomGetRotation (dGeomID);
11 void dGeomGetQuaternion (dGeomID, dQuaternion result);
12 void dGeomGetAABB (dGeomID, dReal aabb[6]);
13 int dGeomIsSpace (dGeomID);
14 dSpaceID dGeomGetSpace (dGeomID);
其中有幾何體的銷(xiāo)毀,設(shè)置幾何體數(shù)據(jù),關(guān)聯(lián)幾何體到缸體
設(shè)置,獲取幾何體旋轉(zhuǎn),
獲取幾何體aabb盒子以及檢測(cè)幾何體是否在空間中
1 int dGeomGetClass (dGeomID);
這是獲取幾何體類型的函數(shù)其取值為:
dSphereClass         Sphere
dBoxClass             Box
dCCylinderClass    Capped cylinder
dCylinderClass       Regular flat-ended cylinder
dPlaneClass            Infinite plane (non-placeable)
dGeomTransformClass Geometry transform
dRayClass              Ray
dTriMeshClass       Triangle mesh
dSimpleSpaceClass Simple space
dHashSpaceClass   Hash table based space
int dGeomGetClass (dGeomID);
下面的是幾何體的禁止和啟用
1 void dGeomEnable (dGeomID);
2 void dGeomDisable (dGeomID);
3 int dGeomIsEnabled (dGeomID);
如果幾何體被禁止那么他就不會(huì)才與碰撞(盡管它在物理空間中)

該篇就到這里吧,這里給出一個(gè)典型的接觸面設(shè)置:
1 surface.mode = dContactBounce | dContactSoftCFM;
2 surface.mu = dInfinity;
3 surface.mu2 = 0;
4 surface.bounce = 0.01;
5 surface.bounce_vel = 0.1;
6 surface.soft_cfm = 0.01;
可以看出他是使用了接觸面彈起
其第一摩擦力方向和第二摩擦力方向是相同的 
posted on 2010-02-26 16:36 ccsdu2009 閱讀(901) 評(píng)論(0)  編輯 收藏 引用

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            激情文学综合丁香| 欧美国产先锋| 一区二区三区欧美视频| 老司机精品久久| 亚洲永久网站| 日韩视频在线观看一区二区| 国产九九精品视频| 欧美视频网站| 欧美国产91| 久久三级视频| 欧美一区二区三区在线看| 亚洲少妇诱惑| 日韩一区二区精品| 亚洲国产欧美在线人成| 另类亚洲自拍| 久久精品在线观看| 欧美伊人久久久久久久久影院 | 久久久久久夜| 午夜激情综合网| 亚洲伊人久久综合| 一卡二卡3卡四卡高清精品视频| 在线日韩电影| 在线精品视频在线观看高清| 国产亚洲精品福利| 国产午夜亚洲精品不卡| 国产精品网红福利| 国产精品一区二区你懂得| 国产精品啊啊啊| 欧美三级中文字幕在线观看| 欧美日韩另类丝袜其他| 欧美日韩 国产精品| 欧美国产免费| 欧美日产一区二区三区在线观看 | 国产欧美一区视频| 国产精品一二三视频| 国产精品久久久久久久久久ktv | 美女精品在线观看| 麻豆成人综合网| 蜜臀久久99精品久久久画质超高清| 久久影院亚洲| 欧美成人性网| 欧美日韩精品欧美日韩精品一| 欧美人成在线视频| 欧美天天综合网| 国产精品影视天天线| 国产一区二区三区日韩欧美| 韩国av一区二区| 亚洲人成77777在线观看网| 亚洲国产高潮在线观看| 亚洲精品一区在线| 亚洲午夜精品17c| 欧美在线黄色| 免费精品视频| 亚洲免费高清| 欧美一区二区三区播放老司机| 久久黄色小说| 欧美久久久久| 国产欧美一区二区精品性色| 黄色成人91| 99精品国产在热久久| 欧美亚洲综合网| 欧美a级在线| 一本久久综合亚洲鲁鲁| 小黄鸭精品密入口导航| 老司机精品久久| 欧美视频在线观看| 国内精品国语自产拍在线观看| 亚洲福利视频二区| 亚洲资源在线观看| 免费观看一区| 亚洲视频免费| 久久影院午夜论| 国产精品日韩欧美一区二区| 黄页网站一区| 亚洲一区二区网站| 欧美1区2区视频| 亚洲性xxxx| 欧美11—12娇小xxxx| 国产精品一区二区三区久久| 亚洲激精日韩激精欧美精品| 亚洲欧美99| 欧美国产高潮xxxx1819| 亚洲一区自拍| 欧美理论在线| 在线观看国产欧美| 亚洲欧美一区二区三区在线| 欧美+亚洲+精品+三区| 亚洲一区二区久久| 欧美极品欧美精品欧美视频| 国产偷国产偷精品高清尤物| 99视频精品全部免费在线| 久久夜色精品国产| 亚洲天堂网站在线观看视频| 欧美成人午夜激情视频| 国产一区自拍视频| 亚洲欧美日韩高清| 亚洲国产日韩欧美一区二区三区| 欧美亚洲免费高清在线观看| 欧美日韩国产a| 亚洲大片一区二区三区| 久久国产手机看片| 一区二区三区成人| 欧美日韩岛国| 亚洲激情影院| 另类国产ts人妖高潮视频| 亚洲欧美综合另类中字| 欧美揉bbbbb揉bbbbb| 亚洲三级影院| 免费在线播放第一区高清av| 校园激情久久| 国产精品一区毛片| 中文日韩在线| 亚洲六月丁香色婷婷综合久久| 蜜桃av一区二区三区| 伊大人香蕉综合8在线视| 久久av免费一区| 亚洲一区在线播放| 国产精品剧情在线亚洲| 亚洲天堂偷拍| 亚洲最新在线| 欧美日韩一区二区视频在线| 99国产麻豆精品| 亚洲三级免费| 欧美久久视频| 亚洲视频在线观看一区| a91a精品视频在线观看| 欧美日韩一区二区三区在线看| 99这里只有精品| 亚洲精品久久7777| 欧美日韩国产区一| 亚洲一品av免费观看| 一本久久知道综合久久| 国产精品国内视频| 午夜精品成人在线| 午夜精品视频网站| 一区在线影院| 欧美黑人在线观看| 欧美激情综合色| 亚洲婷婷综合色高清在线| 一区二区欧美日韩| 国产免费观看久久黄| 久久久国产精品一区| 久久久精品一品道一区| 亚洲黄色一区二区三区| 最新日韩精品| 国产精品久久久久久久浪潮网站| 午夜精品一区二区三区在线视| 亚洲一区二区三区中文字幕在线| 国产精品综合av一区二区国产馆| 久久久噜噜噜久久中文字幕色伊伊| 久久久九九九九| 亚洲人体偷拍| 在线一区视频| 激情欧美丁香| 91久久久久久久久| 国产精品日韩精品欧美精品| 久久久久久久成人| 欧美xart系列高清| 亚洲男人的天堂在线观看| 亚洲欧美偷拍卡通变态| 一区在线电影| 99re66热这里只有精品3直播| 国产美女一区二区| 亚洲大片免费看| 国产精品人成在线观看免费| 久久综合久久综合这里只有精品 | 国产一区自拍视频| 亚洲国语精品自产拍在线观看| 欧美三级小说| 欧美成黄导航| 国产精品久久久久影院亚瑟 | 亚洲午夜视频在线| 伊人久久婷婷色综合98网| 亚洲免费成人av电影| 国产曰批免费观看久久久| 亚洲经典在线看| 国产亚洲欧美日韩日本| 亚洲黄色成人久久久| 国产欧美综合在线| 亚洲人成网站影音先锋播放| 国产欧美日韩中文字幕在线| 亚洲国产精品va在线观看黑人| 国产日本欧洲亚洲| 亚洲欧洲在线一区| 国产在线国偷精品产拍免费yy| 亚洲精品在线看| 亚洲成色777777在线观看影院| 亚洲午夜日本在线观看| 亚洲黄色av一区| 欧美在线精品免播放器视频| 亚洲色无码播放| 久久躁日日躁aaaaxxxx| 欧美一级欧美一级在线播放| 欧美高清你懂得| 久久婷婷麻豆| 国产欧美日韩不卡| 一区二区三区 在线观看视频| 亚洲欧洲午夜| 久久久久久伊人| 久久久久一本一区二区青青蜜月|