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) { Странность тут какую то ощущаю я
Обсуждают сегодня