如何在OpenGl中绘制线条?

时间:2013-01-23 18:00:12

标签: opengl line

我想在opengl中画一条线。

 glBegin(GL_LINES);
    glVertex2f(.25,0.25);
    glVertex2f(.75,.75);
glEnd();

此代码绘制线但如果我想从坐标(10,10)到坐标(20,20)绘制一条线,我该怎么办?

这意味着什么(.25,.25)和(.75,.75)?

2 个答案:

答案 0 :(得分:22)

(。25,.25)和(.75,。75)是行的起点和终点。

从(10,10)到(20,20)画一条线:

glBegin(GL_LINES);
    glVertex2f(10, 10);
    glVertex2f(20, 20);
glEnd();

答案 1 :(得分:1)

glVertex2f中的每个点值都在-1和1之间,左下角是(-1,-1),右上角是(1,1),中心是(0,0)。

要将绝对点映射到规范化空间:

  • x除以窗口宽度w,以得到0到1范围内的点。

  • 将其乘以2可以得到0到2的范围。

  • 减去1以获得所需的-1到1范围。

  • 重复输入y的值和窗口高度h

例如:

double x1 = 10;
double y1 = 10;
double x2 = 20;
double y2 = 20;

x1 = 2*x1 / w - 1;
y1 = 2*y1 / h - 1;

x2 = 2*x2 / w - 1;
y2 = 2*y2 / h - 1;

glBegin(GL_LINES);
    glVertex2f(x1, y1);
    glVertex2f(x2, y2);
glEnd();