Я уже несколько дней пытаюсь написать правильную функцию для рисования 2D-диска на экране с помощью OpenGL, и я просто не могу понять, что это правильно: (
Это мой текущий код:
void Disk( Float x, Float y, Float r, const Color& vColor )
{
glBegin( GL_TRIANGLE_FAN );
glVertex2f( x, y );
for( Float i = 0; i <= 2 * PI + 0.1; i += 0.1 )
{
glVertex2f( x + sin( i ) * r, y + cos( i ) * r );
}
glEnd();
}
При увеличении на результирующем диске появляются пики, не такие, как по краям, а действительно шипы, указывающие.
Также функция не рисует только один диск, но всегда немного больше одного - это означает, что если альфа включена, результаты выглядят неверно.
- Что мне нужно изменить в моей функции, чтобы она правильно рисовала диск?