回 帖 发 新 帖 刷新版面

主题:这个程序中如何实现输入两点 画直线?

我的想法是从屏幕输入起始 终止点的坐标然后画出直线。但不知道怎么实现。
只会如下面那样 在程序中指定起始 终止坐标。(使用全局变量除外)
#include <gl/glut.h>

void myDisplay()
{
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(0.9f, 0.0f, 0.0f);
    glPointSize(3);
    glBegin(GL_LINES);
    glVertex2i(10,10);
    glVertex2i(100,100);
    glEnd();
    glFlush();
}

void ChangeSize(GLsizei width, GLsizei Height)
{
    GLfloat aspectRatio;

    if (Height == 0) {
        Height = 1;
    }

    glViewport(0, 0, width, Height);

    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();

    aspectRatio = (GLfloat)width / (GLfloat) Height;

    if (width <= Height) {
        glOrtho(0.0f, 150.0f, 0.0f/aspectRatio, 150.0f/aspectRatio, 1.0, -1.0);
    }
    else{
        glOrtho(0.0f*aspectRatio, 150.0f*aspectRatio, 0.0f, 150.0f, 1.0, -1.0);
    }

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
}

int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB|GLUT_SINGLE);
    glutInitWindowPosition(100, 100);
    glutInitWindowSize(300, 300);
    glutCreateWindow("例子");
    glutDisplayFunc(myDisplay);
    glutReshapeFunc(ChangeSize);
    glutMainLoop();
    return 0;
}
[em18][em18][em18]

回复列表 (共1个回复)

沙发

这问题好办……¥¥

我来回复

您尚未登录,请登录后再回复。点此登录或注册