openGL 画圆的问题
我的方法如下:#include<GL/glut.h>#include<math.h>constintn=1000;constGLfloatR=0.5f;constGLfl...
我的方法如下:
#include <GL/glut.h>
#include <math.h>
const int n = 1000;
const GLfloat R = 0.5f;
const GLfloat Pi = 3.1415926536f;
void DrawCircle()
{
int i;
glBegin(GL_LINE_LOOP);
for(i=0; i<n; ++i)
glVertex2f(R*cos(2*Pi/n*i), R*sin(2*Pi/n*i));
glEnd();
glFlush();
}
void myDisplay()
{
glClear(GL_COLOR_BUFFER_BIT);
DrawCircle();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowPosition(100, 100);
glutInitWindowSize(400, 400);
glutCreateWindow("Draw a circle");
glutDisplayFunc(myDisplay);
glutMainLoop();
return 0;
}
但是如何使这个圆的半径是5,并且圆心在(5,5)的位置上? 展开
#include <GL/glut.h>
#include <math.h>
const int n = 1000;
const GLfloat R = 0.5f;
const GLfloat Pi = 3.1415926536f;
void DrawCircle()
{
int i;
glBegin(GL_LINE_LOOP);
for(i=0; i<n; ++i)
glVertex2f(R*cos(2*Pi/n*i), R*sin(2*Pi/n*i));
glEnd();
glFlush();
}
void myDisplay()
{
glClear(GL_COLOR_BUFFER_BIT);
DrawCircle();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowPosition(100, 100);
glutInitWindowSize(400, 400);
glutCreateWindow("Draw a circle");
glutDisplayFunc(myDisplay);
glutMainLoop();
return 0;
}
但是如何使这个圆的半径是5,并且圆心在(5,5)的位置上? 展开
展开全部
glBegin(GL_LINE_LOOP);
for(i=0; i<n; ++i)
glVertex2f(R*cos(2*Pi/n*i), R*sin(2*Pi/n*i));
glEnd();
上面4行代码就是画半径为R的圆用的, 如果你要让圆的半径是5, 圆心在5, 5的话
需要改成
glBegin(GL_LINE_LOOP);
for(i=0; i<n; ++i)
glVertex2f(5 + 5*cos(2*Pi/n*i), 5 + 5*sin(2*Pi/n*i));
glEnd();
或者把R改成5
for(i=0; i<n; ++i)
glVertex2f(R*cos(2*Pi/n*i), R*sin(2*Pi/n*i));
glEnd();
上面4行代码就是画半径为R的圆用的, 如果你要让圆的半径是5, 圆心在5, 5的话
需要改成
glBegin(GL_LINE_LOOP);
for(i=0; i<n; ++i)
glVertex2f(5 + 5*cos(2*Pi/n*i), 5 + 5*sin(2*Pi/n*i));
glEnd();
或者把R改成5
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询