Question

Quelqu'un at-il vu cette valeur bizarre lors de la manipulation sin / cos / tan / ACOS .. trucs mathématiques?

=== === LA VALEUR ÉTRANGE

-1. # IND00

=====================

void inverse_pos(double x, double y, double& theta_one, double& theta_two)
{
    // Assume that L1 = 350  and L2 = 250


    double B = sqrt(x*x + y*y);
    double angle_beta = atan2(y, x);
    double angle_alpha = acos((L2*L2 - B*B - L1*L1) / (-2*B*L1));
    theta_one = angle_beta + angle_alpha;
    theta_two = atan2((y-L1*sin(theta_one)), (x-L1*cos(theta_one)));
}

Ceci est le code que je travaillais.

Dans une condition particulière - comme lorsque x et y sont 10 et 10, ce Cod.magasin -1. # IND00 dans theta_one & theta_two .

Il ne ressemble pas à caractères ou chiffres: (

Sans aucun doute, atan2 / ACOS / stuff sont les problèmes.

Mais le problème est, try et catch ne fonctionne pas non plus cuz ces doubles variables ont enregistré avec succès certaines valeurs dans les .

En outre, les calculs suivants ne se plaignent jamais à ce sujet et ne jamais rompre le programme

Je pense à forcer à utiliser cette valeur en quelque sorte et faire planter l'ensemble du programme ... Alors que je peux attraper cette erreur ..

À l'exception de cette idée, je ne sais pas comment je dois vérifier si ces theta_one et theta_two variables ont enregistré ces valeurs folles.

Toutes les bonnes idées?

Merci d'avance ..

scroll top