opengl点的绘制
来源:互联网 发布:sipits网络怎么连 编辑:程序博客网 时间:2024/04/28 21:57
#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;
#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;
}
结果图:
- opengl点的绘制
- opengl绘制opencv处理的数据点
- opengl 绘制绕远点转的飞机
- Opengl绘制点
- 【OpenGL】绘制一个点
- OpenGL——点的绘制(使用OpenGL来绘制可旋转坐标系的螺旋线)
- openGL ES Android 绘制点
- OpenGL-绘制点、线、面
- WIN32 opengl绘制一个点
- opengl学习笔记(三)-点和线段的绘制
- 每天一个OpenGL程序 第二篇 点的绘制
- opengl绘制花环(点的个数可以手动输入) 源代码
- OpenGL: 在空间绘制出一系列螺旋上升的点
- android平台使用Opengl实现点、线、三角形的绘制
- openGL ES 2.0 点与点之间的绘制方式(III)
- OpenGL的数组绘制
- Opengl -- 五角星的绘制
- Opengl -- 五角星的绘制
- linux启动时对编译进内核驱动模块的加载
- NSNumber、NSValue和NSNull
- something new to me
- 纠结于搞.Net待遇不高的同学入...
- android学习---异步任务(AsyncTask)
- opengl点的绘制
- hdu 1255 覆盖的面积(线段树+离散化+扫描线)
- VC6.0的快捷键
- 题目1386:旋转数组的最小数字-九度
- 启动weblogic时,报错Invalid maximum heap size: -Xmx8096m
- ACM——Java
- android 多线程下载 支持断点续传的工具类
- N个鸡蛋放进M个篮子问题
- CACHE启用与否对DMA编程的影响