在openGL中获取圆上彼此相等的点
我试图在OpenGL中为编织模式编写代码。 现在,我正在尝试使用一个圆圈为类似的模式编写代码。 我用点画了一个圆,每个点都是用cos和sin函数画的。 我理解这并不像SeigeLord的方法那样有效,因为它更高效地利用了资源。 我能得到圆,我想得到它周长上的点 我的代码:在openGL中获取圆上彼此相等的点,opengl,geometry,Opengl,Geometry,我试图在OpenGL中为编织模式编写代码。 现在,我正在尝试使用一个圆圈为类似的模式编写代码。 我用点画了一个圆,每个点都是用cos和sin函数画的。 我理解这并不像SeigeLord的方法那样有效,因为它更高效地利用了资源。 我能得到圆,我想得到它周长上的点 我的代码: #include<GL/glut.h> #include<stdio.h> #include<math.h> int n, r; void display() { int i,
#include<GL/glut.h>
#include<stdio.h>
#include<math.h>
int n, r;
void display()
{
int i, j;
glClearColor(0.0, 0.0, 0.0, 1.0);
glClear(GL_COLOR_BUFFER_BIT);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-50, 50, -50, 50);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
for (i = 0;i <= 360;i += 1)
{
glBegin(GL_POINTS);
glVertex2f(r*cos(i), r*sin(i));
glEnd();
}
/*for (i = 0;i < 360;i += 10)
{
glBegin(GL_LINES);
glVertex2f(r*cos(i), r*sin(i));
glVertex2f(r*cos(i + 300), r*sin(i + 300));
glEnd();
}*/
glFlush();
}
int main(int argc, char **argv)
{
r = 30;
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(300, 50);
glutInitWindowSize(800, 800);
glutCreateWindow("Cylinder");
glutDisplayFunc(display);
glutMainLoop();
}
#包括
#包括
#包括
int n,r;
无效显示()
{
int i,j;
glClearColor(0.0,0.0,0.0,1.0);
glClear(GLU颜色缓冲位);
glMatrixMode(GL_投影);
glLoadIdentity();
gluOrtho2D(-50,50,-50,50);
glMatrixMode(GLU模型视图);
glLoadIdentity();
对于(i=0;i请注意,sin和cos的输入单位是弧度(即0到2*pi),而不是度(0到360)
for (i = 0;i <= 360;i += 1)
{
glBegin(GL_POINTS);
glVertex2f(r*cos(i * (M_PI / 180.)), r*sin(i* (M_PI / 180.)));
glEnd();
}
for(i=0;i注意,sin和cos的输入单位是弧度(即0到2*pi),而不是度(0到360)。因此,您的代码可能是
for (i = 0;i <= 360;i += 1)
{
glBegin(GL_POINTS);
glVertex2f(r*cos(i * (M_PI / 180.)), r*sin(i* (M_PI / 180.)));
glEnd();
}
用于(i=0;i Hi Bas,我知道了,圆被正确地渲染了,即使是度,你能建议一些方法来找到圆上的点,它们之间的距离相等。所以你想要一个给定的正数N个等距点,而不是示例中的360?如果不是,我不确定我是否理解这个问题?Hi Bas,我知道了,圆是rende红色,即使以度为单位,你能建议一些方法来找到圆上等距的点吗?那么你想要一个给定的正数N个圆上等距的点,而不是示例中的360?如果不是,我不确定我是否理解这个问题?