(C++, GLUT) Рисование круга. Из-за чего несоответствие между радиусом и позицией? Использую GLUT для рисования 2D графики. Рисую круг:double _tmpPoint; glBegin(GL_TRIANGLE_FAN); glVertex2f(posX, posY); for( int i = 0; i setPosition(Ball->getRadius(), Ball->getRadius()); //Устанавливается верно: Ball->setPosition(Ball->getRadius() / 10, Ball->getRadius() / 10); Остальные объекты (Прямоугольники) отрисовываются нормально. В чем может быть проблема?
Проблема скорее всего заключается в том, что вы делите радиус на 10 при вычислении координат вершин круга. Замените radius / 10 на просто radius внутри функции glVertex2f:
Таким образом, вы используете полный радиус для вычисления координат вершин круга, а не десятую часть радиуса. После этого установление позиции x=radius и y=radius должно работать корректно.
Проблема скорее всего заключается в том, что вы делите радиус на 10 при вычислении координат вершин круга. Замените radius / 10 на просто radius внутри функции glVertex2f:
_tmpPoint = (float)i / radius * 3.1415f * 2.0f;glVertex2f(posX + cos(_tmpPoint) * radius,
posY + sin(_tmpPoint) * radius);
Таким образом, вы используете полный радиус для вычисления координат вершин круга, а не десятую часть радиуса. После этого установление позиции x=radius и y=radius должно работать корректно.