我试图在opengl中画一个圆圈,但我似乎无法获得正确的坐标,所以无论我使用什么方法,我总是得到一个省略号。当前代码如下:
void Ball::Render() {
float center_position_x = _body->GetWorldCenter().x;
float center_position_y = _body->GetWorldCenter().y;
float radius = static_cast<b2CircleShape*>(_body->GetFixtureList()->GetShape())->m_radius;
glBegin(GL_LINE_STRIP);
for(float angle = 0; angle <= 360; ++angle) {
float angleInRadians = glm::radians(angle);
float x = glm::cos(angleInRadians);
float y = glm::sin(angleInRadians);
glVertex3f(x,y,0);
}
glEnd();
}
(我知道代码应该在原点绘制圆,但即使那样它也不是一个完美的圆,如果我理解正确,应该在原点绘制一个半径 = 1 的圆)
我使用的其他方法是: http://slabode.exofire.net/circle_draw.shtml http://www.opengl.org/discussion_boards/showthread.php/167955-drawing-a-smooth-circle
这是我的 OpenGL 窗口设置代码(它是一个存根程序,所以我从硬编码值开始):
gluOrtho2D(-10, 15, -10, 15);