我想在opengl中画一条线。
glBegin(GL_LINES);
glVertex2f(.25,0.25);
glVertex2f(.75,.75);
glEnd();
此代码绘制线但如果我想从坐标(10,10)到坐标(20,20)绘制一条线,我该怎么办?
这意味着什么(.25,.25)和(.75,.75)?
答案 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();