利用OpenGL在窗口上绘制出三维坐标

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

/*今天刚开通CSDN博客,以此记录我的编程学习之旅*/

按时间顺序来讲,这是计算机图形学课程的第一个编程实践,大概是在一年前吧。这个程序是在nehe OpenGL框架下完成的,现在回头来看,这是一个很基础、很简单的小程序,但可以说是我编写(改编)的第一个图形窗口程序。

下面是程序绘制三维坐标的主体代码:

int DrawGLScene(GLvoid) // 这个自定义函数用于完成窗口场景绘制
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清屏及深度缓存
glLoadIdentity(); // 重置模型观察矩阵
glTranslatef(-1.0f,-1.0f,-6.0f); //平移绘制起点(向左平移1个单位,向下平移1个单位,朝垂直屏幕向内平移6个单位)
glColor3f(1.0f,0.0f,0.0f); // 设置画笔颜色(RGB:此处为红色)

// 绘制x、y、z轴线段
glBegin(GL_LINES);
glVertex3f( 0.0f, 0.0f, 0.0f ); //绘制线段的起点,这里为相对坐标,即相将glTranslatef移动后的点作为原点
glVertex3f( 3.0f,0.0f, 0.0f  ); //确定第一条线段的终点(3,0,0)
glVertex3f( 0.0f,0.0f, 0.0f ); //确定第二条线段的起点(0,0,0)
glVertex3f( 0.0f,3.0f, 0.0f );  //确定第二条线段的终点(0,3,0)
glVertex3f( 0.0f,0.0f, 0.0f );

Qt OpenGL初探 - 画坐标轴 OpenGL使软件开发人员能够在CAD、内容创建、能源、娱乐、游戏开发、制造、医疗和虚拟现实等市场中创建高性能、视觉吸引力强的图形软件应用程序。`Qt OpenGL`模块可以很方便地将OpenGL应用在Qt程序中,本文使用其画了一个3D坐标轴,并详细讲解了具体的编码过程与官方手册的使用。 阅读详情

相关推荐

OpenGL做一个坐标系指示方位

OpenGL除了能画3D模型,渲染外,也可以画线。下面是一段画坐标箭头的代码,供参考。 首先要加载数据到缓存区 //箭头数据,每两个点为一组,画一条线段 glm::vec3 box[34] = { { 0, 0, 0.f }, { 1, 0, 0.f }, { 1, 0, 0.f }, { 0.7, 0.1, 0.f }, { 1, 0, 0.f }, { 0.7, -0.1, 0.f }, { 1.2, 0.1, 0.f }, { 1.

garyaofq的博客 2964

glVertex3f - OpenGL

glVertex3f - OpenGL

weixin_47725177的博客 633

OpenGL绘制三维场景的简单机器人

这是慕课上的计算机图形学的作业,作业要求是: 具体要求: (1)构建一个三维场景: 可利用glut提供的各种简单形体来搭建;或者读入别的模型来构成场景。 加入光照效果。 (2)用键盘操纵一个物体(如一艘飞船,或一个机器人)在三维场景中漫游。 视点可以放在物体上,或跟随物体;可利用gluLookAt( )函数来实现对视点的控制。 撰写的作业文档中包括: (1)程序功能的描述,效果请附图; (2)论...

derbi123123的博客 1万+

初学OpenGL-对函数的理解

glVertex3f函数和glTranslatef函数以及glLoadIdentity函数 1、glVertex3f(x,y,z):是定义一个顶点。例如:glVertex3f(1.0,0.0,0.0)是定义一个在(1.0,0.0,0,0)的点,一般与glBegin()、glEnd()函数连用,来绘制图像。glBegin()函数中括号里的内容不同,其绘制的图像大有不同。 2、glTranslatef()函数其实是将坐标轴移动,在当前坐标系下,使用glTranslatef函数将坐标轴平移,一般为了保证易懂,先将

qq_44659701的博客 4321

OPENGL 入门

概述 OpenGL OpenGL是渲染2D、3D矢量图形硬件的一种软件接口。本质上说,它是一个3D图形和模型库,具有高度的可移植性,并且具有非常快的渲染速度。OpenGL并不是一种语言,而是更像一个C运行时函数库。它提供了一些预包装的功能,帮助开发人员编写功能强大的三维应用程序。 OpenGL可以再多种操作系统平台上运行,例如各种版本的Windows、UNIX/Linux、Mac OS 和 OS/2等。如今,OpenGL广泛流行于游戏、医学影像、地理信息、气象模拟等领域,是高性能图像和交互性场景处理的工业

u010451780的专栏 1095

绘制地球

#include <GL/glut.h> #include <math.h> #define PI 3.1415926535f #define A 0.31415926535f #define B 0.31415926535f #define R 0.5f struct MyPoint { float x, y, z; }; MyPoint pts[11][20]...

夜空中最亮的星 1222

使用OpenGL函数库实现的一个三维庭院

使用OpenGL函数库实现的一个三维庭院 源代码参考自:《OpenGL 房子》 本文章的源码链接:https://github.com/AhiGan/Yard_OpenGL 实验要求 绘制一个具有真实感的三维场景,其中至少含有2个三维物体,具有光照、纹理效果,可实现交互式的场景漫游,可以使用WebGL、OpenGL或其他函数库,要求独立完成从建模、变换、光照、面绘制算法、纹理映...

qq_31895943的博客 2万+

opengl绘制三维人物luweiqi

素材中有四个.bmp格式的纹理文件和一个.txt的模型参数文件 文件格式说明: 纹理文件数量 纹理文件1(字符串)//.bmp 纹理文件2(字符串) 纹理文件3(字符串) . . . 材质数量 ambient(float[4]) diffuse(float[4]) specular(float[4]]) emission(float[4]) shi...

qq_40711741的博客 6338

Qt环境下利用OpenGL显示三维模型

最近在做一个利用Qt开发的小程序,其中一项功能

Damoninhit的专栏 1万+

OPENGL三维场景搭建、漫游、交互

OPENGL三维场景搭建、漫游、交互标签(空格分隔): OPENGL这是博主的一次实验,实验截止日期还没有到。等deadline过后,博主附上源码。 源码地址:更新:OPENGL三维场景搭建、漫游、交互程序在读取OBJ模型基础上完成,传送门:OPENGL读取OBJ模型天空盒读取bmp图像像素信息(这里以24位BMP图像为例)  这里大家需要自行复习一下BMP图像的组成。在这里我就不详述了。给大家一

sherlockreal的博客 3万+

OpenGL如何将像素点的窗口空间坐标转换为世界坐标

坐标变换的流程 我们探讨的其实就是输入的顶点怎么变换为像素点的坐标(也就是窗口空间坐标),具体矩阵怎么求得感兴趣可以看下这篇文章。 从物体空间到世界空间的变换是通过乘以基本变换矩阵(模型矩阵ModelMatrix)来实现的。 从世界空间到摄像机空间的变换是通过乘以视图矩阵(ViewMatrix)来实现的、 从摄像机空间到剪裁空间的变换是通过乘以投影矩阵(ProjectMatrix)来完成的,根据需求的不同可以选用正交投影或透视投影的相关变换矩阵。乘以投影矩阵后,任何一个点的坐标[x, y, z, w]

from_the_star的博客 4855

OpenGL(六)——创建三维图形

OpenGL(三)——创建三维图形 一、

ifeng12358的博客 1万+

OpenGL】鼠标点击获取世界坐标

OpenGL】鼠标点击获取世界坐标 标签(空格分隔): OpenGL 起因 因为最近在做图形学相关毕设,需要时间鼠标交互获取三维坐标(世界坐标系)。于是在网上查了一些博客与资料,放进自己代码中,效果怎么都不对。于是才自己静下心来,好好研究。 OpenGL中的坐标OpenGL总共有5个坐标系,它们分别是: 局部空间或称物体空间 世界空间 观察空间或称视觉空间 ...

sherlockreal的博客 1万+

OpenGL学习一】用OpenGL绘制图形,制作动画

  1.OpenGL基本框架 1.1OpenGL简介 OpenGL(Open Graphics Library,开放图形库),是三维计算机图形和模型库。作为一个性能优越的图形应用程序设计界面(API),它独立于硬件和窗口系统。并在军事、广播电视、CAD/CAM/CAE、娱乐、艺术造型、医疗影像、虚拟世界等领域都有广泛的用途。具有以下功能: 1.模型绘制 2. 模型观察 3.颜色模式的指...

weixin_43694660的博客 7850

利用OpenGL在MFC中实现三维绘图

视口(Viewport)是OpenGL中用于定义二维渲染空间的一个概念,它将视口坐标映射到窗口坐标。视口设置是渲染流程中的一个关键步骤,它决定了渲染的结果显示在窗口的哪个部分,以及使用怎样的缩放级别。为了渲染茶壶模型,需要定义和编译着色器程序。在这个例子中,一个简单的顶点和片段着色器将用于着色和渲染模型。然后,编译这些着色器并链接为一个着色器程序:// 删除着色器对象。

weixin_29041443的博客 1090

OPENGL学习(四)GLUT三维图像绘制

对于三维目标来说,最主要的就是有坐标变换问题,也就是说有视角问题。下面这个程序只是我们看的方向一直在转,不是物体真的在转。透视函数参数图下所示。

qq_21043585的博客 6497

使用OpenGL实现三维坐标的鼠标拣选

一、简介(Introduction)       OpenGL是一种比较“纯粹”的3D图形API,一般仅用于三维图形的渲染,对于特定领域的开发者(如游戏开发者)而言,如果选择使用 OpenGL进行开发,类似碰撞检测的机制就都需要自行编写了。但是由于鼠标在图形程序中的应用非常非常之广泛(例如现在已经很少有PC游戏能完全地脱离鼠标),OpenGL图形库的基础上添加了选择与反馈机制(Select &

Augusdi的专栏 4386

OpenGL 坐标系概览

前言 前面我们总结了OpenGL的基本概念,下面我们着重理解一下OpenGL中的各种坐标系 一、笛卡尔坐标系 标题2D笛卡尔坐标系.png3D笛卡尔坐标系.png二、视口(Viewport) 世界窗口:在世界坐标系中定义一个对齐的矩形(aligned rectangle,即矩阵的边与坐标轴平行)的窗口,这个世界窗口外的部分被裁减并不被绘制OpenGL会自动地做剪裁。 视口:在显示器的屏幕窗口上定义一个对齐的矩形的视口,OpenGL会自动建立世界窗口和视口的变换(包括缩放和平移)。当世界窗口中所有

anlz729的博客 1万+

OPENGL改变坐标

这里只是简单讲了如何改变二维情况下的坐标系范围,代码也详细给了。

王小六4ever’s poke 3127
下一篇: OpenGL图形变换——几何变换(世界变换)
Carnnation
博客等级 码龄12年 5粉丝 2原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值