我想在opengl中繪製一個圓,但我似乎無法獲得正確的座標,所以無論使用什麼方法,我總是得到一個省略號。當前的代碼如下: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);
聽起來像高寬比問題。你如何處理? – 2013-04-24 17:15:51
@MichaelDorgan哦,耶穌。張貼作爲答覆,所以我可以接受它。 *在我身上的恥辱* – 2013-04-24 17:21:32