opengl点的绘制

#include "stdafx.h"
#include<GL\glut.h>


void RenderScene()

//清除颜色缓冲区,填充的颜色由glClearColor(0,0,0,1);指定为黑色
    glClear(GL_COLOR_BUFFER_BIT);
glPointSize(9);//指定点的大小,9个像素单位
glColor3f(1.0f,0.0f,0.0f);//指定点的颜色值,此点的颜色为红色
glBegin(GL_POINTS);//开始画点
 glVertex3f(0.0f,0.0f,0.0f);//在坐标为(0,0,0)的地方绘制了一个点
    glEnd();//画点结束
glutSwapBuffers();//交换缓冲区
}


void SetupRC()
{
glClearColor(0.0f,0.0f,0.0f,1);//以RGB(0,0,0)即黑色来清空颜色缓冲区
glColor3f(1.0f,0.0f,0.0f);//以RGB(1,0,0)即红色来绘制图形
}


//当窗口大小改变时接受新的宽度和高度
void ChangeSize(GLsizei w,GLsizei h)
{
GLfloat nRange=200.0f;
//防止h被除时为0
if(h==0)
h=1;
    //设立视口到窗口之间的范围
glViewport(0,0,w,h);
    //重设投影矩阵
    glMatrixMode(GL_PROJECTION);//声明对投影矩阵进行操作
    glLoadIdentity();//把对栈顶的那个矩阵设置为单位矩阵,让之前的任何变换都不影响后面的变化
    //正交投影变换
if(w<=h)
glOrtho(-nRange,nRange,-nRange*h/w,nRange*h/w,-nRange,nRange);
else
glOrtho(-nRange*w/h, nRange*w/h, -nRange, nRange, -nRange, nRange);


glMatrixMode(GL_PROJECTION);//声明对模型视景矩阵进行操作
glLoadIdentity();


}


int main(int argc,char* argv[])
{
glutInit(&argc,argv);//初始化glut库
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB|GLUT_DEPTH);//设置图形显示模式
//GLUT_DOUBLE:使用双缓存。以避免把计算机作图的过程都表现出来,或者为了平滑地实现动画。 
//GLUT_RGB:建立RGB模式的窗口
//GLUT_DEPTH:使用深度缓存
glutInitWindowSize(200,200);//设置图形窗口大小
glutCreateWindow("point example");//设置窗口名
glutDisplayFunc(RenderScene);//注册一个绘图函数
glutReshapeFunc(ChangeSize);//负责窗口尺寸
        SetupRC();//设置渲染
        glutMainLoop();//让整个绘图循环进行,相当于死循环
return 0;

}

结果图:



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值