OpenGL基础(二):线

    OPengl中绘制线的类型有:GL_LINES,GL_LINE_STRIP和GL_LINE_LOOP。

1.GL_LINES    

     每一对顶点连接成一条线段

glBegin(GL_LINES);
	glVertex3f(100.0f, 100.0f,0.0f);
	glVertex3f(40.0f, 100.0f, 0.0f);
	glVertex3f(70.0f, 70.0f, 0.0f);
	glVertex3f(50.0f, 70.0f, 0.0f);
glEnd();

2.GL_LINE_STRIP

    点构成了连续线段

glBegin(GL_LINE_STRIP);
	glVertex3f(100.0f, 100.0f,0.0f);
	glVertex3f(40.0f, 100.0f, 0.0f);
	glVertex3f(70.0f, 70.0f, 0.0f);
	glVertex3f(50.0f, 70.0f, 0.0f);
glEnd();

3.GL_LINE_LOOP   

    封闭的连续线段

glBegin(GL_LINE_LOOP);
	glVertex3f(100.0f, 100.0f,0.0f);
	glVertex3f(40.0f, 100.0f, 0.0f);
	glVertex3f(70.0f, 70.0f, 0.0f);
	glVertex3f(50.0f, 70.0f, 0.0f);
glEnd();

  点画线可以通过GL_LINE_STIPPLE设置,0xAAAA表示1010 1010 1010 1010 即像素点显示与不显示交替。

glEnable(GL_LINE_STIPPLE);
glLineStipple(3,0xAAAA);

     对线进行平滑处理,可以通过GL_LINE_SMOOTH

if (!glIsEnabled(GL_LINE_SMOOTH))
	glEnable(GL_LINE_SMOOTH);

    当前线的宽度可以通过GL_LINE_WIDTH得到,测试结果为1.0

GLfloat size;
glGetFloatv(GL_LINE_WIDTH, &size);

    线的宽度范围通过GL_LINE_WIDTH_RANGE得到,测试结果为0.5 - 10.0。即宽度范围0.5 - 10.0的线,可以做平滑处理。

GLfloat size[2];
glGetFloatv(GL_LINE_WIDTH_RANGE, size);

     线的颗粒度可以通过GL_LINE_WIDTH_GRANULARITY得到,测试结果为0.125。

GLfloat granularity;
glGetFloatv(GL_LINE_WIDTH_GRANULARITY, &granularity);

 

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值