C 圈不发生在0,0以外的任何地方?
所以如果我做原点(0,0),这个效果很好,但是在这里我试图让它在(20,20)处工作,并且形状根本不是一个圆。这是怎么回事C 圈不发生在0,0以外的任何地方?,c,opengl,geometry,C,Opengl,Geometry,所以如果我做原点(0,0),这个效果很好,但是在这里我试图让它在(20,20)处工作,并且形状根本不是一个圆。这是怎么回事 const unsigned int triangles = 20; // number of triangles const float twoPi = 2.0f * 3.14159f; const double radius = 0.1; int i; float delta = twoPi / trian
const unsigned int triangles = 20; // number of triangles
const float twoPi = 2.0f * 3.14159f;
const double radius = 0.1;
int i;
float delta = twoPi / triangles;
glBegin(GL_TRIANGLE_FAN);
glVertex2f(20/window_w,20/window_h); // origin
for(i = 0; i <= triangles; i++)
glVertex2f((20/window_w)+(radius * cos(i * delta)),
(20/window_h)+(radius * sin(i * delta)));
glEnd();
const无符号整数三角形=20;//三角形数
常数浮点twoPi=2.0f*3.14159f;
常数双半径=0.1;
int i;
浮动三角形=两个圆周率/三角形;
glBegin(GLU三角形风扇);
glVertex2f(20/窗宽,20/窗高);//起源
对于(i=0;我甚至不用修改顶点值来将圆移动到不同的位置。应该使用矩阵变换来解决这个问题。尤其是glTranslatef(…)
将非常有帮助。记住在尝试此操作之前将矩阵模式设置为GL\u MODELVIEW
并加载标识。您可能也想推/弹出MODELVIEW矩阵。无论您从何处了解到立即模式,都应该涵盖我刚才提到的所有内容。怀疑您转移到中心(20,20)应该使用类似“glVertex2f(20+窗口w/2,20+窗口h/2)”的东西。