opengl绘制连续的点

怎样用openGL绘制出连续的点
比如说:
glpointsize(1.0f);
glBegin(GL_POINTS);
glVertex3f(0.5f,0.5f,0.0);
glEnd();
下一个点我想紧挨着前一个点,那么glVertex3f(,,)中的三个参数如何填写?
或者有什么简便的函数,答案好的大大的加分。

紧挨着前一个点,你要考虑绘图范围,不单是窗的绝对大小,如果用 GLUT, glutInitWindowSize(500,500);窗500x500. 绘图范围 gluOrtho2D(-1.0,1.0,-1.0,1.0);是-1.0到1.0, 那么你的点的间距d要很小,点才会紧挨着。例如:float s=1.0,d=0.002;
glColor3f(0.0,1.0,1.0);
glEnable(GL_POINT_SMOOTH);
glPointSize(s);
glBegin(GL_POINTS);
for (i=0;i<500;i++){
glBegin(GL_POINTS);
glVertex3f(i*d,i*d,0.0);
glEnd();
}
-----------
实际上glPointSize(s);设出来的点,看上去不可能大于1个像素。不会变一个大球。点紧挨点,看上去就是一条线。要想画球紧挨球,就要写画一个球面的程序段,再循环改变球心位置画球面。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-01-18
glVertex3f(,,) 里面的是坐标
你想紧挨,坐标移一点就行了
比如glVertex3f(0.6f,0.5f,0.0);
你到底想描点来画什么
你要是想画个图形描点就太傻了
第2个回答  2010-01-18
你把glpointsize(1.0f);glBegin(GL_POINTS);glVertex3f(0.5f,0.5f,0.0);glEnd();
放到一个函数DrawPoint里,然后
for(int i =0 ;i < count; i++)
{
glPushMatrix();
glTranslatef(i/10,0,0);
DrawPoint();
glPopMatrix();
}
glFlush();
这样就能在x方向上距离为0.1排列了,紧挨着就只能缩小“i/10”了
第3个回答  2010-01-20
感觉你是想画线(连续的点)呢,如果是的话,如下正弦曲线:
const GLfloat factor = 0.1f;

glBegin(GL_LINE_STRIP);
for(int x=-1.0f/factor; x<1.0f/factor; x+=0.01f)
{
glVertex2f(x*factor, sin(x)*factor);
}
glEnd();
第4个回答  2010-01-21
为什么不划线呢?
这样吧~~
glpointsize(1.0f);
glBegin(GL_POINTS);
glVertex3f(0.5f,0.5f,0.0);
glColor3f(1.0f,0.0f,0.0f);//加颜色区分 后面的随便加
glVertex3f(0.5f,0.5f,0.0);//点的坐标你来定 设的很近就好了呗
//color
glVertex3f(0.5f,0.5f,0.0);点的坐标你来定 设的很近就好了呗
//color
glVertex3f(0.5f,0.5f,0.0);点的坐标你来定 设的很近就好了呗
//color
glVertex3f(0.5f,0.5f,0.0);点的坐标你来定 设的很近就好了呗
glEnd();
第5个回答  2010-02-07
既然是点,又如何去连续呢??点本来就是断的,线才是连续的点组成的,矛盾
相似回答