Я использую glutTimerFunc (...) для достижения движения руки робота, моя проблема в том, что левая сторона 0 градусов до 90 легко решается,
когда я пытаюсь от 0 до -90 градусов, рука не останавливается? я пробовал разные методы, но все ошибались, можете ли вы предложить лучшие варианты?
вот моя функция таймера,
void myTimerFunc(int var)
{
switch(var)
{
case 1: if(shoulder>=90)
stop=1;</p>
<pre><code> 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: if (плечо> = 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;
}
по умолчанию: разрыв;
}
}
Я звоню из функции клавиатуры .......
void keyboard (unsigned char key, int x, int y)
{
switch (key)
{
case 's':
glutTimerFunc(100,myTimerFunc,1);
break;
glutTimerFunc(100,myTimerFunc,2);
break;