版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、转帖分享怎样在应用程序中改变运动路径中指定控制点的速度?代码下面这段程用于改变运动路径中指定控制点的速度:void setNavMarkerSpeed( const int navIdx,路径索弓 Iconst int pointIdx, 控制点索引const float speed ) 指定速度(char data256;unsigned ctrlptIdx = -1;int eventType = -1;double value = -1;unsigned nbytes = 0;bool idxFound = false;vgSplineNavigator *navigator = vgG
2、etNavigator( navIdx );if( navigator = NULL )return;int render = vgProp( navigator, VGSPLINENAV_RENDER );int navstate = vgProp( navigator, VGCOMMON_ENABLED );vgProp( navigator, VGSPLINENAV_RENDER, VG_OFF );vgProp( navigator, VGCOMMON_ENABLED, VG_OFF );vgUpdate(navigator );int numMarkers = vgGetProp(
3、navigator,VGNAV_NUM_MARKERS);for( int j = 0; j numMarkers; j+ )(vgNavigatorGetMarker( (vgNavigator*)navigator,j,&ctrlptIdx,&eventType,&value,(void*)data,&nbytes );if( eventType = VGSPLINENAV_VELOCITY & pointIdx = ctrlptIdx) ( vgNavigatorMarker( (vgNavigator*)navigator,j,pointIdx,VGSPLINENAV_VELOCITY
4、,speed,NULL, 0 );idxFound = true;break;)if( !idxFound )(vgNavigatorAddMarker( navigator,pointIdx,VGSPLINENAV_VELOCITY, speed,NULL, 0);)vgMakeSplineNavigator(navigator);if( render = VG_ON )vgProp( navigator, VGSPLINENAV_RENDER, VG_ON );if( navstate = VG_ON )vgProp( navigator, VGCOMMON_ENABLED, VG_ON
5、);)转帖分享怎样用程序在运动模式和运动路径之间进行转换代码下面两个函数分别用于让观察者在运动模式和运动路径之间进行转换:void switchObsToNavigator( const int navIdx ) 转为按指定的运动路径 navIdx(vgObserver *obs = vgGetObserv(0)vgNavigator *nav = (vgNavigator*) vgGetSplineNavigator( navIdx );vgProp( nav, VGCOMMON_ENABLED, VG_ON );vgProp( nav, VGPLYR_SPLINE_NAVIGATOR, V
6、G_ON );vgProp( obs, VGCOMMON_ENABLED, VG_ON );vgProp( obs, VGOBS_TETHERSTATE, VGOBS_FIXED );vgProp( obs, VGOBS_TETHERCOORD, VGOBS_TPLAYER );vgPlayer *plyr = vgGetPlyr(0);vgPlyrNav( plyr, nav );vgObservPlyr( obs, plyr );)void switchObsMotionModel( const int motIdx ) 转为按指定的运动模式 motIdx运动 (vgObserver *o
7、bs = vgGetObserv(0);vgObservNav( obs, NULL );vgObservPlyr( obs, NULL );vgNavigator *nav = (vgNavigator*) vgGetSplineNavigator(0);vgProp( nav, VGCOMMON_ENABLED, VG_OFF );vgProp( nav, VGPLYR_SPLINE_NAVIGATOR, VG_OFF );vgMotion *mot = vgGetMot(motIdx);vgProp( mot, VGCOMMON_ENABLED, VG_ON );vgUpdate( mo
8、t );vgObservMot( obs, mot );vgProp( obs, VGOBS_TETHERCOORD, VGOBS_TABSOLUTE);vgProp( obs, VGOBS_TETHERSTATE, VGOBS_DYNAMIC );vgProp( obs, VGCOMMON_ENABLED, VG_ON );)手动添加路径完整代码,但有一问题:自动漫游时不能到达路径末端,这是为何(内详,附代码)?在场景中手动添加控制点,形成路径,然后自动漫游,漫游时第一个控制点能够准确定位,但是漫游到路径的末端时,却总是停在最后一个控制点的稍前处,这是为何?有没有大侠知道啊?void mai
9、n()(vgWindow *win;vgObserver *obs;vgPath *path;vgSplineNavigator *nav;vgPosition *pos;int numPts, idx;vgInitSys();vgDefineSys(town.adf);vgConfigSys();win = vgGetWin(0);obs = vgGetObserv(0);path = vgNewPath(my.pth, NULL);nav = vgNewSplineNavigator(my.nav, path);numPts = 0;idx = 0;bool bDelFile = fals
10、e;while(1)(vgSyncFrame();vgFrame();switch(vgGetWinKey(win)(case VGWIN_F5:pos = vgNewPos();vgGetPos(obs, pos);vgPathAddCtrlPointPos(path, pos);vgDelPos(pos);numPts+;break;case VGWIN_F6:vgProp(nav, VGCOMMON_ENABLED, VG_ON);vgProp(nav, VGSPLINENAV_START_INDEX, 0);vgNavigatorAddMarker(nav, 0, VGSPLINENA
11、V_HERMITE, 0, NULL, 0);vgNavigatorAddMarker(nav, 0, VGSPLINENAV_START_DELAY 1, NULL, 0);/渲染导航路径for(idx = 1; idx numPts; idx+)vgNavigatorAddMarker(nav, idx, VGNAV_EMPTY, 0, NULL, 0);vgMakeSplineNavigator(nav);/按路径运动vgProp(obs, VGOBS_TETHERSTATE, VGOBS_NAVIGATOR);vgObservNav(obs, (vgNavigator*)nav);br
12、eak;default:break;)#include vg.h#include vgutil.h voidsetNavigatorOverallSpeed( const int navIdx,const float speed )(char data256;unsigned ctrlptIdx = -1;int eventType = -1;double value = -1;unsigned nbytes = 0;vgSplineNavigator *navigator = vgGetNavigator( navIdx );if( navigator = NULL )return;int
13、render = vgProp( navigator, VGSPLINENA/_RENDER );int navstate = vgProp( navigator, VGCOMMON_ENABLED );vgProp( navigator, VGSPLINENA/_RENDER, VG_OFF ); vgProp( navigator, VGCOMMON_ENABLED, VG_OFF );vgUpdate( navigator );int numMarkers = vgGetProp( navigator,VGNA/_NUM_MARKERS);for( int j = 0; j numMar
14、kers; j+ )(vgNavigatorGetMarker( (vgNavigator*)navigator,j, &ctrlptIdx, &eventType, &value, (void*)data, &nbytes );if( eventType = VGSPLINENA/_VELOCITY ) (vgNavigatorMarker( (vgNavigator*)navigator, j, ctrlptIdx, VGSPLINENAV_VELOCITY, speed, NULL, 0 );vgProp( navigator,VGSPLINENAV_VELOCITY, speed );
15、vgMakeSplineNavigator(navigator);if( render = VG_ON )vgProp( navigator, VGSPLINENA/_RENDER, VG_ON );if( navstate = VG_ON )vgProp( navigator, VGCOMMON_ENABLED, VG_ON );关于对player创建导航器得问题!牛人帮忙看看请问这一段对player创建导航器得代码有什么问题阿实现目标是在起始点和终点间直线运动void liftone(float x,float y,float z,float h,float p,float float x
16、1,float y1,float z1,float h1,float p1,float r1) (vgPath *path;vgSplineNavigator *nav;vgPosition *pos;vgPlayer *plyr;float ctrlPtsMAXNUM6;float old;int numPts,idx;plyr = vgFindPlyr(box2);path = vgNewPath(PATH_FILE,NULL);numPts=0;idx=0;pos=vgNewPos();vgPosVec(pos,x,y,z,h,p,r);vgPathAddCtrlPointPos(pat
17、h,pos);ctrlPtsnumPts0=x;ctrlPtsnumPts1=y;ctrlPtsnumPts2=z;ctrlPtsnumPts3=h;ctrlPtsnumPts4=p;ctrlPtsnumPts5=r;vgDelPos(pos);numPts+;pos=vgNewPos();vgPosVec(pos,x1,y1,z1,h1,p1,r1);vgPathAddCtrlPointPos(path,pos);ctrlPtsnumPts0=x1;ctrlPtsnumPts1=y1;ctrlPtsnumPts2=z1;ctrlPtsnumPts3=h1;ctrlPtsnumPts4=p1;
18、ctrlPtsnumPts5=r1;vgDelPos(pos);numPts+;if(numPts)(nav=vgNewSplineNavigator(NAV_FILE,path);vgProp(nav,VGCOMMON_ENABLED,VG_ON);vgProp(nav,VGSPLINENAV_START_INDEX,0);vgProp(nav,VGSPLINENAV_LOOPVG_ON);vgNavigatorAddMarker(nav,0,VGSPLINENAV_LINEAR,0,NULL,0);vgNavigatorAddMarker(nav,0,VGSPLINENAV_START_DELAY2,NULL,0);vgNavigatorAddMarker(nav,0,VGSPLINENAV_VELOCITY30,NULL,0);vgNavigatorAddMarker(nav,0,VGSPLINENAV_ABSOLUTE_HPR,VG_ON,NULL,0);vgNavigatorAddMarker(nav,0,VGSPLINENAV_RENDER,VG_ON,NULL,0);for(idx=1;idxNUMPTS;IDX+)(vgNavigatorAddMarker(nav,idx,VGNAV_EMPTY0,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医学26年:消化科危急值管理要点 查房课件
- 2026 减脂期坚果搭配策略课件
- 肝内胆汁淤积的护理措施
- 输液常见不良反应的预防措施
- 胎儿窘迫的护理心理支持
- 门急诊健康宣教服务
- 2026 塑型维持期肌酸维持课件
- 老年友好:动画讲解护理员沟通艺术
- 肠息肉护理中的安全管理
- 青光眼护理要点与实践
- 买房个人协议
- 援外成套项目(中方代建项目)检查验收标准
- DB12T 1341-2024 消防产品使用和维护管理规范
- 幼儿园班级幼儿图书目录清单(大中小班)
- 中国超重肥胖营养专家共识
- 村委会会议签到表
- MSOP(测量标准作业规范)测量SOP
- 第12章 群体遗传和进化
- 解除党纪处分影响期申请书
- GA 1807-2022核技术利用单位反恐怖防范要求
- GB/T 5330.1-2012工业用金属丝筛网和金属丝编织网网孔尺寸与金属丝直径组合选择指南第1部分:通则
评论
0/150
提交评论