游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1782|回复: 2

为什么画不出图形

[复制链接]

6

主题

8

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2006-10-18 09:34:00 | 显示全部楼层 |阅读模式
void addVertexAt(int index, float x, float y) {
        int i;
        numVerticies++;
        verticies = (Point2Df *)realloc(verticies, numVerticies * sizeof(*verticies));
        for (i = numVerticies - 2; i >= index; i--) {
                verticies[i + 1] = verticies;
        }
        verticies[index].x = x;
        verticies[index].y = y;

}
void mouseClick(int button, int state, int x, int y) {
        int viewport[4];
        double ProjeMatrix[16];
        double ModelMatrix[16];
        int flippedy;
        int clickedVertex;
        int cEdge;

        switch(button) {
        case GLUT_LEFT_BUTTON:
                if (state == GLUT_DOWN) {
                        glGetIntegerv(GL_VIEWPORT, viewport);
                        flippedy = viewport[3] - y ;

                        int  winz;
                        double wx, wy, wz;
                        winz = 0;
                       
                        glGetDoublev( GL_MODELVIEW_MATRIX  , ModelMatrix ) ;
                        glGetDoublev( GL_PROJECTION_MATRIX , ProjeMatrix ) ;
//                        glGetIntegerv( GL_VIEWPORT, viewport ) ;
                       
                        gluUnProject(x,
                                flippedy,
                                winz,
                                ModelMatrix,
                                ProjeMatrix,
                                viewport,
                                &wx,
                                &wy,
                                &wz);
       
                        addVertex(wx + 0.0, wy + 0.0);
//                                                movingVertex = numVerticies - 1;
                        glutPostRedisplay();
                } else if (state == GLUT_UP) {
                        movingVertex = -1;
                        glutPostRedisplay();

                }
                break;
        default:
                break;
        }
}
void drawPolyloop(void) {
        int i;
        int viewport[4];
        glGetIntegerv(GL_VIEWPORT, viewport);

        glPushMatrix();

        if (verticies != NULL) {
                glColor3f(1.0, 0.0, 1.0);
                glBegin(GL_LINE_LOOP);
                for (i = 0; i < numVerticies; i++) {
                        glVertex3f(verticies.x, verticies.y, 0.0);
                }
                glEnd();
        }

        glPopMatrix();
}

41

主题

184

帖子

184

积分

注册会员

Rank: 2

积分
184
发表于 2006-10-18 12:07:00 | 显示全部楼层

Re:为什么画不出图形

把verticies中的数据用fopen输出来,看看是否在你的视口中,程序看起来好像是对的。

27

主题

418

帖子

455

积分

中级会员

Rank: 3Rank: 3

积分
455
QQ
发表于 2006-10-18 15:26:00 | 显示全部楼层

Re:为什么画不出图形

glPushMatrix
glPopMatrix
去掉看看
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 15:29

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表