J'utilise un glutTimerFunc (...) pour réaliser le mouvement du bras du robot, mon problème est le côté gauche 0 degré à 90 est facilement fait,180 à -180 mouvement dans opengl C++?
quand j'essaie 0 à -90 degrés, le bras n'est pas arrêter? J'ai essayé différentes méthodes, mais toutes falied, pouvez-vous suggérer de meilleures options?
ici est ma fonction de minuterie,
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; }
Cas n ° 2: si (épaule> = 360)
stop2=1; if(!stop2) { shoulder = (shoulder - 5); glutPostRedisplay(); glutTimerFunc(100,myTimerFunc,2); break; }
// ici le bras de robot ne s'arrête pas ...........
if(shoulder<=270) stop2 = 0; stop3 = 1; if(!stop3) { shoulder = (shoulder + 5); glutPostRedisplay(); glutTimerFunc(100,myTimerFunc,2); break; }
par défaut: break; }}
J'appelle cette fonction de clavier .......
void keyboard (unsigned char key, int x, int y)
{
switch (key)
{
case 's':
glutTimerFunc(100,myTimerFunc,1);
break;
glutTimerFunc(100,myTimerFunc,2);
break;
oui j'ai une base circulaire, il peut se déplacer à 360 degrés, je voulais 180 t0 -180 mouvement, j'ai déclaré une variable entière qui se soucie de l'angle. Existe-t-il une meilleure option que l'entier statique pour représenter les angles? –
Alors pourquoi votre code a-t-il des vérifications incluant 270 et 360? Ce n'est pas [-180, +180]. "statique" entier? Entier est bon, mais je ne comprends pas "statique". – duffymo