opengl点的绘制

2023-11-04

#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;

}

结果图:



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

opengl点的绘制 的相关文章

  • glDrawElements 在 PyOpenGL 中绘制立方体

    我最近开始通过 Python 学习 OpenGL 这要归功于几个教程 尤其是 Nicolas P Rougier 的教程 http www labri fr perso nrougier teaching opengl http www l
  • libgdx 中帧缓冲区的结果不明确

    我得到以下奇怪的结果帧缓冲区 http libgdx badlogicgames com nightlies docs api com badlogic gdx graphics glutils FrameBuffer htmllibgdx
  • OpenGL Z 偏置(多边形偏移)限制

    我有两个共面的多边形 我尝试做 glEnable GL POLYGON OFFSET FILL glPolygonOffset 0 1 并期望其中一个明显 位于 另一个之上 这种情况直到大约 70 75 个单位之外 近剪裁平面为 1 远剪裁
  • 退出 glutFullScreen()

    我不明白为什么当我按 f 时它进入全屏但不退出全屏 在这个方法的开头我已经设置了bool fullscreen false 这是我的切换代码 case f toggle screenmode if fullscreen glutFullSc
  • 法线在 openGL 中表现得很奇怪

    我一直在为 openGl 编写一个 obj 加载器 几何体加载得很好 但法线总是混乱的 我尝试在两个不同的程序中导出模型 但似乎没有任何效果 据我所知 这就是将法线放入 GL TRIANGLES 的方法 glNormal3fv norm1
  • OpenGL 和加载/读取 AoSoA(混合 SoA)格式的数据

    假设我有以下 AoSoA 格式的简化结构来表示顶点或点 struct VertexData float px 4 position x float py 4 position y 也就是说 每个实例VertexData存储4个顶点 我见过的
  • OpenGL z轴指向哪里?

    我正在尝试了解 OpenGL 坐标系 我到处都看到它被描述为右撇子 但这与我的经验不符 我尝试绘制一些形状和 3 d 对象 我发现 z 轴显然指向 屏幕 而 x 指向右侧 y 指向上方 这是左手坐标系的描述 我缺少什么 编辑 例如 http
  • gluPerspective 与 gluOrtho2D

    我查看了 MSDN 上关于这两个函数的文档 但是 我不太明白这两个功能之间的区别 一个是用于设置 3D 相机视图 另一个是用于设置 2D 相机视图 如果能得到解答就太好了 预先感谢您的评论 正交投影基本上是没有透视的 3D 投影 本质上 这
  • 使用 Qt 在 xoverlay 之上绘制

    我希望在使用 Xoverlay 渲染的视频流之上绘制一些 UI 我正在使用 gstreamer 播放视频并使用 xoverlay 在 xvimagesink 上渲染它 我的小部件继承自 QGLWidget 我希望使用 QPainter 绘制
  • OpenGL 着色器不与着色器程序链接

    我正在尝试使用 GLFW GLEW 添加着色器 我收到一个错误 指出着色器已加载 但它们没有有效的对象代码 这是我用于加载着色器的代码 class SHADER public void LoadShaders const char vert
  • lnk1104:无法打开“LIBC.lib”链接

    使用 GLee 将着色器写入我的 OpenGL 项目并编译后 我收到了错误LNK1104 cannot open file LIBC lib 我尝试按照其他人的建议添加它并忽略它 但没有解决问题 有没有其他方法可以解决我错过的这个问题 以下
  • 对齐坐标系

    Let s say I have 2 coordinate systems as it is shown in image attached 如何对齐这个坐标系 我知道我需要将第二个坐标系围绕 X 平移 180 度 然后将其平移到第一个坐标
  • glBlitFramebuffer 渲染缓冲区和渲染全屏纹理哪个更快?

    哪个更快更高效 使用 OpenGL 纹理作为 CUDA 表面并在四边形上渲染 新样式 使用渲染缓冲区作为 CUDA 表面并使用 glBlitFramebuffer 进行渲染 None
  • 使用 OpenGL 着色器进行数学计算 (C++)

    我有一个矩阵 例如 100x100 尺寸 我需要对每个元素进行计算 matrix i j tt 8 5例如 我有一个巨大的矩阵 我想使用 OpenGL 着色器来实现该算法 我想使用着色器 例如 uniform float val unifo
  • 将四元数旋转转换为旋转矩阵?

    基本上 给定一个四元数 qx qy qz qw 我如何将其转换为OpenGL旋转矩阵 我也对哪个矩阵行是 向上 向右 向前 等感兴趣 我有一个四元数的相机旋转 我需要在向量中 以下代码基于四元数 qw qx qy qz 其中顺序基于 Boo
  • GL_CULL_FACE使所有对象消失

    我正在尝试在 openGL3 3 中创建一些简单的多边形 我有两种类型的对象 具有以下属性 对象 1 10 个顶点 按顺序在下面列出 存储在GL ARRAY BUFFER并使用GL TRIANGLE FAN v x y z w v 0 0
  • 在 Linux 上运行我自己的程序的权限被拒绝? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有Ubuntu 9 4 我已经构建了程序 一些基本的 OpenGL 该程序只是制作一个旋转的正方形 然后运行它并 sh blabla p
  • OpenGL缓冲区更新[重复]

    这个问题在这里已经有答案了 目前我正在编写一个模拟水的程序 以下是我所做的步骤 创建水面 平面 创建VAO 创建顶点缓冲区对象 在其中存储法线和顶点 将指针绑定到此 VBO 创建索引缓冲区对象 然后我使用 glDrawElements 渲染
  • Visual Studio 2010 中的 SOIL 设置

    我无法得到SOIL http www lonesock net soil html正确使用 Visual Studio 2010 我远非 VS 专家 但据我所知 只需执行以下步骤即可使环境正常运行 属性 gt gt C C gt 常规 gt
  • Glew+GLFW Win32 无依赖项 Visual Studio

    是否可以在不将文件复制到 C 的情况下构建并链接 Glew 和 GLFW 我找不到任何说明如何在不将 DLL 复制到 C 上的 Visual Studio 目录的情况下使用这些库的文档 我只想包含项目目录中所需的所有 dll 和 lib 文

随机推荐

  • vue封装插件并发布到npm上

    vue封装插件并发布到npm上 项目初始化 首先 要创建项目 封装vue的插件用webpack simple很合适 vue init webpack simple 项目名称此命令创建我们的项目的目录 创建文件夹和文件 最后结构是这样的 然后
  • Linux系统中修改用户名的两种方案整理

    在安装系统的时候 经常会无意识的随便起个用户名 后面如果发现该用户名不好或因为环境需要须重起个用户名 经过查找资料和亲自测试发现有两种方案可选 手动修改和使用usermod等命令自动修改 方案一 手动修改各个关联用户文件 以root身份登录
  • Qt内存泄漏篇

    一 常见内存泄漏例子 内存泄漏例子 1 prop 对象在栈函数中创建后 使用完后没有释放 导致每调用一次 内存泄漏一次 2 QObject子对象cleaner在创建时 没有指定父对象 且在栈函数中调用完毕后 没有释放 3 基类的类析构函数没
  • SeleniumLibrary4.5.0 关键字详解(八)

    SeleniumLibrary4 5 0 关键字详解 八 库版本 4 5 0 库范围 全局 命名参数 受支持 简介 SeleniumLibrary是Robot Framework的Web测试库 本文档说明了如何使用SeleniumLibra
  • Notepad++ 16进制编辑功能

    Notepad 可以编辑PE文件 二进制文件即HEX码 2进制 16进制都可以 通过附加的组件HexEditor即可实现 另外一款Notepad 自带插件TextFX也有这个功能 但实现效果不如Hex Editor Hex Editor实现
  • vscode 链接方式解决插件位置

    直接进入正题 在想要安装插件的位置建立文件夹 如下图所示 之后再windows的cmd指令中运行如下指令 注意在此需要以管理员身份运行cmd mklink D C Users vscode extensions F Microsoft VS
  • extended initializer lists only available with -std=c++11

    extended initializer lists only available with std c 11 or std gnu 11 enabled by default g MutexThread c lpthread o mute
  • 暴力破解zip加密压缩包

    最近恰好有个压缩包要解密 所以稍微研究了一下该怎么去破解加密的压缩包 zip rar在道理上是一样的 由于现有的方法中没想到高级的破解方式 所以只有暴力破解压缩包了 暴力破解压缩包的原理很简单 就是先制作一个密码字典 这个字典是暴力破解的核
  • Java:读取excel文件中的内容(简单、详细、明确、有全部代码)

    Java 读取excel文件中的内容 一 引入依赖 二 引入工作类 三 读取excel内容 一 引入依赖 注意 jxl 仅支持读取 xls 文件 读 xlsx 会报错 在 pom xml 中引入 jxl 的依赖
  • 使用SecureCRT 和 SecureFX遇到的几点问题以及解决

    一 使用SecureCRT 时候打开SecureFX的时候无法连接到Linux目录 打开SecureFX的时候无法打开上传目录弹出对话框 the file transfer protocol none specified in the se
  • 基于图像的火焰识别调研总结

    转载请注明出处https blog csdn net Hey chaoxia article details 85054870 简单总结一下近期的调研结果 一 简介 火焰的图像识别 主要围绕火焰的颜色特征 运动特征 几何特征与纹理特征来分析
  • Vue3+Vite+Pinia+Naive后台管理系统搭建之一:基础项目构建

    前言 如果对 vue3 的语法不熟悉的 可以移步 Vue3 0 基础入门 快速入门 github 开源库 Vue3 Vite Pinia Naive Js gitee 开源库 Vue3 Vite Pinia Naive Js 1 构建项目
  • AQS流程图

    整个AQS加锁解锁过程
  • jq 获取下拉框的值和value

    误区 一直以为jquery获取select中option被选中的文本值 是这样写的 s text 获取所有option的文本值 实际上应该这样 s option selected text 获取选中的option的文本值 获取select中
  • 深入了解ln命令:创建硬链接和符号链接的实用指南

    文章目录 1 引言 1 1 关于ln命令 1 2 ln命令的作用和用途 2 基本用法 2 1 创建硬链接 2 2 创建符号链接 2 3 区别硬链接和符号链接 3 操作示例 3 1 创建硬链接的示例 3 2 创建符号链接的示例 3 3 查看链
  • eval()函数的用法

    1 eval 函数函数基本原理 eval s 函数将去掉字符串s最外侧的引号 并按照Python语句方式执行去掉引号后的字符内容 使用方式如下 lt 变量 gt eval lt 字符串 gt a eval 1 2 print a 输出结果
  • 客户管理系统 详细流程(不用三大框架)

    客户管理系统的详细编写流程 一 系统设计 1 需求分析 系统中包含哪些数据模型 数据模型存在怎样的关系 E R图 UML 用例图 2 制作页面Demo 和真实系统效果一样 给客户确认需求 3 技术选型 环境搭建 软件建模工具 IBM RSA
  • [Python-9]GUI编程

    一 GUI图形用户界面编程介绍 我们前面实现的都是基于控制台的程序 程序和用户的交互通过控制台来完成 本章 我们将学习GUI Graphics User Interface 即图形用户界面编程 我们可以通过python提供的丰富的组件 快速
  • SSM商城项目实战:后台管理用户认证

    SSM商城项目实战 后台管理用户认证 1 项目概述 本项目是一个基于SSM Spring SpringMVC MyBatis 框架的商城后台管理系统 用于管理商品 订单和用户等信息 在本篇博客中 我们将重点介绍如何实现后台管理用户的认证功能
  • opengl点的绘制

    include stdafx h include