if (rot[6] * rot[6] != 1) {
roll = asin(-rot[6]);
pitch = atan2(rot[7]/ cos(roll), rot[8]/ cos(roll));
yaw = atan2(rot[3] / cos(roll), rot[0] / cos(roll));
} else {
yaw = 0;
if (rot[6] == -1) {
roll = M_PI/ 2;
pitch = yaw + atan2(rot[1], rot[2]);
} else {
roll = -M_PI / 2;
pitch = -yaw + atan2(-rot[1], -rot[2]);
}
}
а зачем прибавлять yaw, который до этого зануляется?
ух, не задетектило кодяру
Точные сравнения флоатов, мммм
> if (rot[6] * rot[6] != 1) { Странность тут какую то ощущаю я
Обсуждают сегодня