我使用的是glutTimerFunc(...)实现机器人手臂的运动,我的问题是左侧0度到90是很容易做到,180到-180在opengl C++中的运动?
当我尝试0到-90度,手臂不回采?我尝试了各种方法,但都是错误的,你能提出更好的选择吗?
这是我的定时器功能,
void myTimerFunc(int var) { switch(var) { case 1: if(shoulder>=90) stop=1;
if(!stop) { shoulder = (shoulder + 5); glutPostRedisplay(); glutTimerFunc(100,myTimerFunc,1); break; } if(shoulder<=0) stop1=1; if(!stop1) { shoulder = (shoulder - 5); glutPostRedisplay(); glutTimerFunc(100,myTimerFunc,1); break; }
情况2:如果(肩> = 360)
stop2=1; if(!stop2) { shoulder = (shoulder - 5); glutPostRedisplay(); glutTimerFunc(100,myTimerFunc,2); break; }
//这里机器人手臂不停止...........
if(shoulder<=270) stop2 = 0; stop3 = 1; if(!stop3) { shoulder = (shoulder + 5); glutPostRedisplay(); glutTimerFunc(100,myTimerFunc,2); break; }
默认值:break; }}
我是来自键盘功能调用这个.......
void keyboard (unsigned char key, int x, int y)
{
switch (key)
{
case 's':
glutTimerFunc(100,myTimerFunc,1);
break;
glutTimerFunc(100,myTimerFunc,2);
break;
是的,我有一个圆形底座,它可以移动360度,我想180 t0 -180的运动,我宣布了一个整数变量,关心角度。除了表示角度的静态整数,还有其他更好的选择吗? – 2010-02-07 15:47:10
那么为什么你的代码有检查,包括270和360?这不是[-180,+180]。 “静态”整数?整数是好的,但我不明白“静态”。 – duffymo 2010-02-07 15:54:08