我使用的是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