Создавая небольшую игру в понг на C ++ OpenGL, я решил, что было бы забавно создавать дуги (полукруги), когда вещи подпрыгивают.Я решил на данный момент пропустить кривые Безье и просто перейти к прямой алгебре, но я не ушел далеко.Моя алгебра следует простой квадратичной функции (y = + - sqrt (mx + c)).
Этот небольшой отрывок является лишь примером, который мне еще предстоит полностью параметризировать, я просто хотел посмотреть, как он будет выглядеть,Однако, когда я рисую это, это дает мне прямую вертикальную линию, где касательная к этой линии приближается к -1.0 / 1.0.
Это ограничение стиля GL_LINE_STRIP или есть более простой способ рисовать полукруги/ дуги?Или я просто упустил что-то очевидное?
void Ball::drawBounce()
{ float piecesToDraw = 100.0f;
float arcWidth = 10.0f;
float arcAngle = 4.0f;
glBegin(GL_LINE_STRIP);
for (float i = 0.0f; i < piecesToDraw; i += 1.0f) // Positive Half
{ float currentX = (i / piecesToDraw) * arcWidth;
glVertex2f(currentX, sqrtf((-currentX * arcAngle)+ arcWidth));
}
for (float j = piecesToDraw; j > 0.0f; j -= 1.0f) // Negative half (go backwards in X direction now)
{ float currentX = (j / piecesToDraw) * arcWidth;
glVertex2f(currentX, -sqrtf((-currentX * arcAngle) + arcWidth));
}
glEnd();
}
Заранее спасибо.