ARToolkit手札之显示菜单(二)

xiaoxiao2021-02-28  14

       在”ARToolkit手札之显示菜单(一) “这篇博客中,我利用标识卡的旋转角度显示了菜单的输出状态,那么我可以根据菜单的输出状态,指定绘制虚拟物体。

        nSel表示菜单目前切换到那个字符串,将这个参数传递到static void draw(void)函数,就可以指定绘制哪个虚拟物体了。

        在”ARToolkit手札之显示菜单(一) “的基础上,修改static void draw(void)函数,如下。

static void draw(int nSel) { …… …… …… //glTranslatef( 0.0, 0.0, 25.0 ); //glutSolidCube(50.0); if(nSel==1) glutSolidCube(50.0); // nSel =1绘制立方体 else if(nSel==2) glutSolidSphere(25.0,150,150); // nSel=2绘制球体 else // nSel=0绘制茶壶 { glRotatef(90,1,0,0); glutSolidTeapot(50.0); } glDisable( GL_LIGHTING ); glDisable( GL_DEPTH_TEST ); }

【补充】不要忘记在声明部分修改static  void  draw(void);

//static void draw(void); static void draw(int nSel);运行结果如下。

图1【当n=4的情况下】angle在[0,29]之间,nSel=0,菜单切换到”Teapot”,绘制茶壶

图2【当n=4的情况下】angle在[30,59]之间,nSel=1,菜单切换到”Cube” ,绘制立方体

图3【当n=4的情况下】angle在[60,89]之间,nSel=2,菜单切换到”Sphere” ,绘制球体

转载请注明原文地址: https://www.6miu.com/read-2300389.html

最新回复(0)