QT5 OpenGL (四, 绘制立体图形)
- 概要
- 效果图
- 主要代码
- 代码解析
概要
前面几篇博客,已经从基本的绘图, 上色到旋转都已经讲完了, 但它们都只是限于平面图形,而对于立体图形并没有讲到。 本篇主要来讲opengl绘制立体图形。 我们在小学就知道, 线是由点构成, 点构成面, 面构成立体图形。 所以,立体图形的绘制,就是绘制多个有对应关系的平面。 而平面的绘制,就是由多个点的坐标组成。前面几篇博客已经讲过了。
效果图
主要代码
void OpenglWidget::paintGL()
{glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glLoadIdentity();glTranslatef( -1.5, 0.0, -6.0 );glRotatef( m_rotateRectangle, 0.0, 1.0, 0.0 );glBegin( GL_QUADS );glColor3f(1, 0, 0);glVertex3f(-1,1,1);glVertex3f(-1,1,-1);glVertex3f(-1,-1,-1);glVertex3f(-1,-1,1);glColor3f(0, 0, 1);glVertex3f(-1,1,-1);glVertex3f(-1,-1,-1);glVertex3f(1,-1,-1);glVertex3f(1,1,-1);glColor3f(0, 1, 0);glVertex3f(1,1,-1);glVertex3f(1,-1,-1);glVertex3f(1,-1,1);glVertex3f(1,1,1);glColor3f(0, 0, 1);glVertex3f(1,-1,1);glVertex3f(1,1,1);glVertex3f(-1,1,1);glVertex3f(-1,-1,1);glColor3f(0, 1, 0);glVertex3f(-1,1,1);glVertex3f(1,1,1);glVertex3f(1,1,-1);glVertex3f(-1,1,-1);glColor3f(0, 0, 1);glVertex3f(-1,-1,1);glVertex3f(-1,-1,-1);glVertex3f(1,-1,-1);glVertex3f(1,-1,1);glEnd();glLoadIdentity();glTranslatef( 1.5, 0.0, -6.0 );glRotatef( m_rotateTriangle, 0.0, 1.0, 0.0 );glBegin( GL_TRIANGLES );glColor3f( 1.0, 0.0, 0.0 );glVertex3f( 0.0, 1.0, 0.0 );glColor3f( 0.0, 0.0, 1.0 );glVertex3f( -1.0, -1.0, -1.0 );glColor3f( 0.0, 1.0, 0.0 );glVertex3f( -1.0, -1.0, 1.0 );glColor3f( 1.0, 0.0, 0.0 );glVertex3f( 0.0, 1.0, 0.0 );glColor3f( 0.0, 0.0, 1.0 );glVertex3f( 1.0, -1.0, 1.0 );glColor3f( 0.0, 1.0, 0.0 );glVertex3f( 1.0, -1.0, -1.0 );glColor3f( 1.0, 0.0, 0.0 );glVertex3f( 0.0, 1.0, 0.0 );glColor3f( 0.0, 1.0, 0.0 );glVertex3f( -1.0, -1.0, 1.0 );glColor3f( 0.0, 0.0, 1.0 );glVertex3f( 1.0, -1.0, 1.0 );glColor3f( 1.0, 0.0, 0.0 );glVertex3f( 0.0, 1.0, 0.0 );glColor3f( 0.0, 1.0, 0.0 );glVertex3f( 1.0, -1.0, -1.0 );glColor3f( 0.0, 0.0, 1.0 );glVertex3f( -1.0, -1.0, -1.0 );glEnd();m_rotateRectangle += 20;m_rotateTriangle += 20;
}
代码解析
在本实例中, 主要绘制了三棱柱和立方体。 总结的方法主要有:
1.在绘制立体图形时,在我们的思维空间里, 应该把这种规则的立体图形的中心为原点。以横向为X轴, 左为负,右为正, 以纵向为Y 轴, 上为正,下为负, 以我们面对的目光直射方面为Z轴, 胸前方向为正, 背后方向为负。 这样就容易形成一个容易理解的立体空间。
2.当我们以规则立体图形的中心为坐标原点时, 每个立体图形的各个顶点的x,y,z坐标,此时都不为0
3.对于有些面为三角形的立体图形,在绘制三角形面时, 点的顺序,和面的顺序不限定方向。
4.对于面为四边形或多边形的立体图形, 在绘制四边形,或多边形时,应该以逆时针方向绘制, 至于每个面的起点,不受限制, 从那个面开始不受限制。
QT5 OpenGL (四, 绘制立体图形)相关推荐
- 开始绘制立体图形立方体正四面体
刚刚学会绘制B曲线和曲面,突然想学习绘制立体图形了,说干就干,百度了一下,从立方体开始 做了好好长时间终于完成了..实现的代码如下 #include<GL/GLUT.H> #include ...
- VS2012下基于Glut OpenGL显示一些立体图形示例程序:
Glut下提供了一些现成的绘制立体的API,如glutWireSphere绘制球,glutWireCone绘制椎体,glutWireCube绘制立体,glutWireTorus绘制甜圈,glutWir ...
- cdr软件怎么绘制立体图?cdr绘制立体图形的教程
CorelDRAW的简称是cdr,是一款专业的矢量图绘制软件,一般都是用来绘制二维图形的,但是也可以绘制三维图形,下面内容就来用cdr软件演示绘制三维图形的教程 cdr软件绘制三维图形的教程: 进入C ...
- python做一个立体相册_python使用库绘制立体图形方法
不同于往日,这次实现3D图形,小编给大家带来了一个新的库,这里用到的VisPy库,比起matplot更高级,非常容易上手,虽然知道了解的人可能不是很多,但是这丝毫不影响它是非常简单实用的,好啦,回归本 ...
- OpenGL与3D开发-绘制3D图形
绘制3D图形 文章目录 绘制3D图形 1.立方体 2.圆形 3.球形 3.1.球面顶点坐标计算 使用OpenGL ES绘制3D图形的方法与绘制2D图形的步骤大致相同,只是绘制3D图形需要定义更多的顶点 ...
- Win32 OpenGL编程(4) 2D图形基础(颜色及坐标体系进阶知识)
Win32 OpenGL 编程 (4) 2D 图形基础(颜色及坐标体系进阶知识) write by 九天雁翎 (JTianLing) -- blog.csdn.net/vagrxie 讨论新闻组及文件 ...
- 使用OpenGL,在窗口中绘制两个立体图形,位置分别为窗口的左侧和右侧,添加光照,两个图形分别绕x轴和y轴旋转。
总体思路: 第一步,使用viewpoint函数来建立两个分割的窗口 第二步,在两个视口分别绘制带光照效果的立体图形 第三步,使用进栈出栈函数和Rotatef函数实现两图像各自的旋转 关于glPushM ...
- 【愚公系列】2022年09月 微信小程序-WebGL立体图形的绘制
文章目录 前言 一.webgl的使用 1.立体图形的绘制 二.相关包源码 三.总结 前言 WebGL(全写Web Graphics Library)是一种3D绘图协议,这种绘图技术标准允许把JavaS ...
- Android开发笔记(一百五十三)OpenGL绘制三维图形的流程
从这篇文章开始,接下来会连载一系列的OpenGL相关博文,好好探讨如何在Android中进行OpenGL开发. OpenGL的全称是"Open Graphics Library", ...
最新文章
- 2022-2028年中国电力行业节能减排投资分析及前景预测报告
- 《ArcGIS Runtime SDK for Android开发笔记》——(6)、基于Android Studio的ArcGIS Android工程结构解析...
- Wamp与IIS同时在Windows7下运行解决方法
- c语言ascw,Asc/AscB/AscW和Chr/ChrB/ChrW函数之间的区别
- java remove removeat_2016.3.12 Java中ArrayList类详解(转)
- 如何看Cortex-M系列处理器差异与共性?技术老司机Joseph带你飞
- 在sublime text里阅读ABAP源代码的一些例子
- LaunchScreen原理
- linux 内核 锐龙,AMDGPU内核驱动程序在Linux 5.0上运行良好
- 百度回应李彦宏卸任百度云执行董事;甲骨文拟增聘 2000 员工拓展云服务;PostgreSQL 12 正式发布 | 极客头条...
- kiban可视化入门
- Mac m1搭建python深度学习环境+pycharm
- 工具分享:易读文档下载器(同时支持百度/豆丁)
- 叉乘点乘混合运算公式_《3D数学基础》提炼总结(四)向量运算(后)
- 计算机excel保留一位小数,excel表格数据取一位小数-excel保留一位小数
- 小米AI魔法万花筒解密
- 凤凰网科技频道定位和主要内容
- 一次阿里巴巴的电话面试
- xshell突然连接不上
- 【转】用天文方法计算二十四节气(下)