(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);
Остальные объекты (Прямоугольники) отрисовываются нормально.
В чем может быть проблема?

21 Авг 2019 в 06:16
225 +1
0
Ответы
1

Проблема скорее всего заключается в том, что вы делите радиус на 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 должно работать корректно.

20 Апр в 13:21
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 309 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир