Это часто возвращает NAN («Не число») в зависимости от ввода:
#define PI 3.1415f
GLfloat sineEaseIn(GLfloat ratio) {
return 1.0f-cosf(ratio * (PI / 2.0f));
}
Я попытался уменьшить PI на несколько цифр, чтобы посмотреть, поможет ли это. Нет игральных костей. Затем я подумал, что это может быть несоответствие типа данных, но float и glfloat кажутся эквивалентными:
гл.ч
typedef float GLfloat;
math.h
extern float cosf( float );
Это вопрос кастинга?
NaN
, когда вы этого не ожидаете? - person John Feminella   schedule 11.06.2010PI
(или pi/2) самостоятельно. Вы можете использоватьM_PI_2
, определенный в<math.h>
(предпочтительно либо с приведением к float, либо с добавленным суффиксомf
, чтобы избежать ненужных преобразований во время выполнения). - person Stephen Canon   schedule 28.07.2010