Кто-нибудь видел это странное значение при обработке sin / cos / tan / acos .. math stuff?
=== странное значение ===
-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)));
}
Это код, над которым я работал.
В определенном состоянии, например, когда x & y равны 10 и 10,
этот код сохраняет -1. # IND00 в theta_one & theta_two .
Оно не похоже ни на символы, ни на цифры: (
Без сомнения, atan2 / acos / stuff - это проблемы.
Но проблема в том, что try and catch тоже не работает
Потому что эти двойные переменные успешно сохранены
некоторые значения в них .
Более того, следующие вычисления никогда не жалуются на это
и никогда не ломайте программу !
Я думаю о том, чтобы заставить это значение как-то использовать и заставить всю программу зависать ...
Так что я могу поймать эту ошибку ..
За исключением этой идеи, я не знаю, как мне проверить,
Переменные theta_one и theta_two сохранили эти сумасшедшие значения.
Есть хорошие идеи?
Заранее спасибо ..