zoukankan      html  css  js  c++  java
  • VEGA编程——DOF指南

    DOF节点在Creator中可以方便的被创建,也可以使用Local-DOF菜单下的DOF Viewer命令进行交互式的查看,关于如何创建DOF并设置相应的约束条件就不详细讲了,可以参考相应的帮助文档,或者Creator的中文书,如果有的话。
    考虑在虚拟场景中有个可以被打开和关闭的门,要在Vega中实现交互控制该门的闭合,怎么办?对了,很简单,DOF!
    在Creator中创建一个名为“door”的DOF节点,将门部分的模型,通常是个体节点放置到该节点下,用Set Local命令将DOF原点放置到门轴上,设置其绕门轴的旋转约束,比如绕Z轴,从0到120度。
    注意,虽然可以在Creator中使用DOF Viewer查看其运动状态,但是在Vega中它是不会自动开关的,必须通过相应的API函数来控制,下面是一个简单的开门程序,大家可以举一反三,实现开/关门:
     1#include 
     2#include 
     3static void opentheDoor(void);
     4
     5main( int argc, char *argv[] )
     6{
     7
     8vgWindow* win;
     9if ( argc != 2 ) 
    10{
    11    printf( "Usage: %s ", argv[0] );
    12    exit( -1 );
    13    }
     
    14     
    15    vgInitSys( );
    16     
    17    vgDefineSys( argv[1] );
    18
    19vgConfigSys( );
    20
    21win = vgGetWin(0);
    22while ( 1 )
    23{
    24  vgSyncFrame();
    25  vgFrame();
    26    
    27  switch ( vgGetWinKey(win) )
    28  {
    29  //按下空格键开门
    30  case ' ':
    31     opentheDoor();
    32     break;
    33  default:
    34   break;
    35  }

    36}

    37}

    38void opentheDoor()
    39{
    40  vgObject* obj;
    41  vgPart* door;
    42  vgPosition* pos;
    43  int i;
    44  float x, y, z, h, p, r;
    45  obj = vgGetObj(0);
    46  door = vgFindPart(obj, "door", NULL); //获取DOF
    47  pos = vgNewPos();
    48  vgGetPos(door, pos);
    49  vgGetPosVec(pos, &x, &y, &z, &h, &p, &r);
    50
    51        for (i=0; i<120; i++)
    52  {
    53   h+=1;
    54   vgPosVec(pos, x, y, z, h, p, r);
    55   vgPos(door, pos);
    56   vgSyncFrame();
    57   vgFrame();
    58  }

    59  vgDelete(pos);
    60
    61}
  • 相关阅读:
    Windows 科研软件推荐
    有关Python 包 (package) 的基本知识
    《Using Python to Access Web Data》Week4 Programs that Surf the Web 课堂笔记
    Coursera助学金申请模板
    《Using Databases with Python》 Week2 Basic Structured Query Language 课堂笔记
    Jupyter 解决单个变量输出问题
    解决 pandas 中打印 DataFrame 行列显示不全的问题
    《Using Python to Access Web Data》 Week3 Networks and Sockets 课堂笔记
    缓存击穿及解决方案
    jvm垃圾收集器
  • 原文地址:https://www.cnblogs.com/yunbo/p/240784.html
Copyright © 2011-2022 走看看