• 6221阅读
  • 2回复

OpenGL三绘图形绘制的问题 [复制链接]

上一主题 下一主题
离线quchong10527
 

只看楼主 倒序阅读 楼主  发表于: 2010-07-16
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
各位朋友,大家好!小弟想画一个三维图形,代码目前写了这么多,但是画出来的图形是一个二维的。array[5000][9]前面已经有了数据,此处如何用glVertex3f(array[1]/m,array[3]/m,array[5]/m);画成三维的图形。请各位朋友指点一下。小弟在此谢谢了!
extern int maxline;
extern float array[50000][9];
float m=35000.0;
void GLWidget::drawPosition()
{
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    glTranslatef( 0,  0, -6.0);
    glRotatef(rotationX, 1.0, 0.0, 0.0);
    glRotatef(rotationY, 0.0, 1.0, 0.0);
    glRotatef(rotationZ, 0.0, 0.0, 1.0);

    glBegin(GL_LINE_STRIP);
    glColor3f(1.0f,0.0f,0.0f);
    for (GLint i=0;i<maxline;i++)
    {      
        glVertex3f(array[1]/m,array[3]/m,array[5]/m);
    }
    glEnd();
   
    glBegin(GL_LINES);
    glColor3ub( 255, 255, 0);
    for(GLint i=0;i<maxline;i++)
    {
        glVertex3d(array[1]-0.3,array[3],array[5]);
        glVertex3d(array[1]+0.3,array[3],array[5]);

        glVertex3d(array[1],array[3]-0.3,array[5]);\
        glVertex3d(array[1],array[3]+0.3,array[5]);

        glVertex3d(array[1],array[3],array[5]-0.3);
        glVertex3d(array[1],array[3],array[5]+0.3);
    }
    glEnd();
}
离线dbzhang800

只看该作者 1楼 发表于: 2010-07-16
引用楼主quchong10527于2010-07-16 09:41发表的 OpenGL三绘图形绘制的问题 :
各位朋友,大家好!小弟想画一个三维图形,代码目前写了这么多,但是画出来的图形是一个二维的。array[5000][9]前面已经有了数据,此处如何用glVertex3f(array[1]/m,array[3]/m,array[5]/m);画成三维的图形。请各位朋友指点一下。小弟在此谢谢了!
extern int maxline;
extern float array[50000][9];
float m=35000.0;
void GLWidget::drawPosition()
.......


这个不属于 Qt范畴了,建议去OpenGL相关论坛看看
离线quchong10527

只看该作者 2楼 发表于: 2010-07-16
回 1楼(dbzhang800) 的帖子
        楼上,正在查找!对了,楼上的朋友,我现在又遇到了一个问题,在一个窗口中对两个GLWidget进行OpenGL初始化,然后共用一组数据对两个GLWidget进行不同的图形的绘制。我用上次你给我说的“提升法”试着创建一个新类添加到另一个GLWidget中,然后试着在两个OpenGL中绘制不同的图形,但是没有成功。不知有什么方法可以解决这个问题。
快速回复
限100 字节
 
上一个 下一个