环境:vs2017 + qt5.11 + QGLViewer2.7.1

1、新建QtGUIApplication

新建一个QtGUIApplication(勾上opengl或者自己配置opengl32.lib,glu32.lib)

2、 配置QGLViewer

配置QGLViewer(包含目录、库目录、附加依赖项)

release模式QGLViewer2.lib(release模式QGLViewerd2.lib)

3、加入QGLViewer窗口

ui文件(Form Files/mainwindow.ui)

文件中填上头文件,运行报错

缺少XML module,Qt Project Settings->Qt Modules

ok,跑起来了

4、绘制图像

头文件mainwindow.h中添加:

protected Q_SLOTS:void draw();

mainwindow.cpp文件中添加:

void MainWindow::draw() {//官方图像镇楼// Draws a spiralconst float nbSteps = 200.0;glBegin(GL_QUAD_STRIP);for (float i = 0; i < nbSteps; ++i) {float ratio = i / nbSteps;float angle = 21.0 * ratio;float c = cos(angle);float s = sin(angle);float r1 = 1.0 - 0.8 * ratio;float r2 = 0.8 - 0.8 * ratio;float alt = ratio - 0.5;const float nor = .5;const float up = sqrt(1.0 - nor * nor);glColor3f(1.0 - ratio, 0.2f, ratio);glNormal3f(nor * c, up, nor * s);glVertex3f(r1 * c, alt, r1 * s);glVertex3f(r2 * c, alt + 0.05, r2 * s);}glEnd();
}

初始化时连接viewer和draw函数:

MainWindow::MainWindow(QWidget *parent): QMainWindow(parent)
{ui.setupUi(this);connect(ui.viewer, SIGNAL(drawNeeded()), this, SLOT(draw()));
}

运行(官方图镇楼)

源码:

第一个QGLViewer程序相关推荐

  1. 第一个spring程序

    第一个spring程序: 第一步:导入jar包. 新建maven项目: <dependency><groupId>org.springframework</groupId ...

  2. 快速搭建第一个Mybatis程序

    一.简介 1.初识Mybatis 2.持久化 3.持久层 4.为什么需要Mybatis 二.第一个Mybatis程序 1.搭建环境 2.创建一个新模块 3.编写代码 4.Junit测试 三.可能遇到的 ...

  3. Linux上运行一个c程序

    b站的视频链接:Linux虚拟机运行c程序_哔哩哔哩_bilibili希望对大家有所帮助,不对的地方还请多多指教!https://www.bilibili.com/video/BV18Q4y1r7st ...

  4. Go:分布式学习利器(1) -- 开发环境搭建 + 运行第一个go程序

    文章目录 为什么要学习 go 开发环境搭建 -- MAC 运行第一个go程序 go 函数的返回值设置 go 函数的命令行参数 为什么要学习 go 在如下几个应用场景的需求下产生了go: 超大规模分布式 ...

  5. 用java实现一个计算器程序_1.2第一个java程序——hello world

    第一个java程序--hello world 实现一个java程序,主要有三个步骤:1.编写源代码,2.编译源代码,3.运行.java的源代码必须先编译,然后才能由JVM解析执行.所以我们程序员第一步 ...

  6. C(第一个C程序) 和 C++ (第一个C++程序)对比碰撞

    个人博客首页(点击查看详情) -- https://blog.51cto.com/11495268 1.简介 C++ 是对 C 的继承.扩展,但从语言角度来说,这是 两种变成语言,就一定存在不同,本文 ...

  7. 区块链c端应用小程序_区块链如何真正起作用? 我建立了一个应用程序向您展示。...

    区块链c端应用小程序 by Sean Han 通过肖恩·韩 区块链如何真正起作用? 我建立了一个应用程序向您展示. (How does blockchain really work? I built ...

  8. 如何开发属于自己的第一个Java程序

    学习java技术都是循序渐进的,搭建好了Java开发环境之后,下面就来学习一下如何开发Java程序.为了让初学者更好地完成第一个Java程序,接下来小编通过几个步骤进行逐一讲解. 1.编写Java源文 ...

  9. C#:将另一个应用程序的主窗口移至屏幕最前

    2019独角兽企业重金招聘Python工程师标准>>> 使用WindowsAPI函数SwitchToThisWindow,可以将指定窗口移动到屏幕最前. 如果要将另一个应用程序的窗口 ...

最新文章

  1. 从系统的启动过程分析,为什么我们划分分区的时候 /sbin 、/bin、/lib、/dev不能做为独立的分区?...
  2. python调用lib_基于python调用libvirt API
  3. maven项目配置定时任务
  4. python 建筑建模_不可错过的python 街道数据爬取和分析神器!
  5. 大学生学java要去培训机构吗?
  6. cuda 图片拆分_急需,PDF怎么拆分啊?
  7. android 拼接参数,Android 多参数多文件同时上传
  8. error40无法打开到sql_技术分享|初识SQL优化之执行计划查看分析
  9. Ubuntu 14.04安装Python3
  10. 查询系统是使用 MBR 还是 GPT 分区 (Windows 和 Linux)
  11. Moon一个无视Linq,无视实体类的设计思路.(不要错过,看了之后, 让我们从此以后不再羡慕linq to entiy!)...
  12. 一文详解:java认证考试报名费用
  13. 【Linux】安装网易云全攻略
  14. STM32F103_study60_The punctual atoms(Input capture experimentInput)
  15. 微积分的历史(五):发展之泰勒公式(上)
  16. matlab 多项式降幂,MATLAB自动将向量元素按降幂顺序分配给各系数值.PPT
  17. chrome插件莫名消失【已解决】
  18. slf4j简单介绍(2)-使用
  19. kali学习-被动信息收集-DNS相关
  20. 解读 Caliper 修改配置文件调整交易量进行性能测试(中文首发)

热门文章

  1. vue v-model 简单使用
  2. 洛谷P4413 R2
  3. Linux基本命令之文件查找、检索
  4. 人活系列Streetlights (秩)
  5. 根据对方提供的URL获取返回的数据流并保存为XML
  6. jsp上传下载+SmartUpload插件上传
  7. 消息摘要算法示例(python和go)
  8. 介绍 Java 平台的 Jazzy:一种新的拼写检查器 API
  9. ifm management of technology q and a session 2
  10. 如何零基础或者转行数据分析师?