Welcome 微信登录

首页 / 软件开发 / C++

如何正确理解C++默认构造函数

如何正确理解C++默认构造函数

如何正确理解C++默认构造函数2017-02-15对于C++默认构造函数,我曾经有两点误解:类如果没有定义任何的构造函数,那么编译器(一定会!)将为类定义一个合成的默认构造函数。合成默认构造函数会初始化类中所有的数据成员。第一个误解来自于我学习C++的第一本书 《C++ Primer》,在书中392页:“只有当一个类没有定义构造函数时,编译器才会自动生成一个默认构造函数”。实际上这句话也没有说错,它说明了默认构造函数定义的必要非充分...
MFC双缓冲绘图实例

MFC双缓冲绘图实例

MFC双缓冲绘图实例2016-12-01投稿人: zsh1990本人之前一直了解双缓冲绘图的基本原理,但是在研究很久之后才大概知道具体的使用过程,本文将详细介绍本人在实际项目中使用双缓冲绘图的案例。实现功能:主界面显示某张包含人脸的图片,通过dlib detector获取到人脸上的68个关键点,绘制在图片上显示,然后通过鼠标拖动图片上的关键点,调整位置,之后保存。双缓冲主要能够解决拖动关键点时屏幕闪烁的问题,本文主要侧重在双缓冲的实现,其他功能概不介绍。具...
OpenGL编程轻松入门之菜单管理

OpenGL编程轻松入门之菜单管理

OpenGL编程轻松入门之菜单管理2007-05-06 天极 黄燕菜单是我们经常使用的工具,很方便,直观。本节讨论在OpenGL中如何进行菜单管理。例17:本例在蓝色的背景上绘制一个白色的正方形,在窗口内单击鼠标右键,弹出菜单,当选择不同菜单项时命令窗口会显示出是哪个菜单的哪个菜单相被激活。本例一个主菜单,主菜单有3个菜单条目及两个子菜单。两个子菜单都有3个菜单条目。#include <GL/glut.h>#include <stdio....
OpenGL编程轻松入门之二次几何体

OpenGL编程轻松入门之二次几何体

OpenGL编程轻松入门之二次几何体2007-05-06 天极 黄燕这一章我们讲一下二次几何物体的绘制。二次几何物体的绘制有几种不同的方式,在本例中可以看出不同的绘制方式的不同效果,如图十五所示。例13:本例使用GLU库函数绘制了四个几何物体,分别为圆柱体、球体、圆盘和部分圆盘。#include <windows.h>#include <GL/glut.h>#include <math.h>/*声明四个二次曲面物体*/G...
OpenGL编程轻松入门之NURBS曲线和曲面(1)

OpenGL编程轻松入门之NURBS曲线和曲面(1)

OpenGL编程轻松入门之NURBS曲线和曲面(1)2007-05-06 天极 黄燕上一节讲了一般的曲线与曲面的绘制,本节讲NURBS曲线和曲面的绘制。例11:此例绘制两个相同形状的NURBS曲面,不同之处是一个为线框式,一个是由实多边形组成。运行后可以看到其中的区别,如图十三所示。#include <windows.h>#include <GL/glut.h> GLUnurbsObj *theNurb1;GLUnurbsObj *...
OpenGL编程轻松入门之特殊效果操作(1)

OpenGL编程轻松入门之特殊效果操作(1)

OpenGL编程轻松入门之特殊效果操作(1)2007-05-06 天极 黄燕每个物体在不同的环境在会有不同的视觉效果。为了使效果更加真实需要增加特殊效果。例8:绘制三个互相重叠的矩形,这三个矩形从左到右分别为绿、红、蓝。其中红色、蓝色矩形的透明度分别为50%的透明度,即alpha值为0.5,如图九所示。#include <stdlib.h>#include <GL/glut.h> void myInit(void){ glClear...
OpenGL编程轻松入门之特殊效果操作(3)

OpenGL编程轻松入门之特殊效果操作(3)

OpenGL编程轻松入门之特殊效果操作(3)2007-05-06 天极 黄燕图十:被雾化的圆锥体 ·glFog指定雾化参数。后面不同的字母表明参数的数据类型。f表示float,i表示integer,v表示vector,也就是表明一个指针。 GL_FOG_MODE是一个单值整数或浮点数,该数值指定了用来计算雾化融合因子f的方程。 GL_DENSITY 是一个单值整数或浮点数,该值指定雾化浓度。 GL_FOG_START 是一个单值整数或...
OpenGL编程轻松入门之纹理映射

OpenGL编程轻松入门之纹理映射

OpenGL编程轻松入门之纹理映射2007-05-06 天极 黄燕纹理我们可以简单的理解为物体表面的花纹。同样的物体我们可以加上不同的纹理。我们可以使用现成的纹理也可以自己做一个新的纹理。例7:绘制一个简单的二维纹理图,并将该图像映射到一个四边形上。#include <stdlib.h>#include <GL/glut.h> #define imageWidth 64#define imageHeight 64GLubyte im...
OpenGL编程轻松入门之坐标变换

OpenGL编程轻松入门之坐标变换

OpenGL编程轻松入门之坐标变换2007-05-06 天极 黄燕本节中的例子仅仅是将第二节的例子作了一点点改动。将myDisplay函数中画三角型的那一部分提出来写成一个函数drawTriangle。然后在myDisplay函数中用drawTriangle();代替原来的语句。这时例3和例1完成的功能完全一样。而此时我们知道坐标的原点在窗口的中心。我们用glTranslate函数改变坐标的原点。同样glTranslate函数后的f和d表明参数的类型。其参...
OpenGL编程轻松入门之使用颜色

OpenGL编程轻松入门之使用颜色

OpenGL编程轻松入门之使用颜色2007-05-06 天极 黄燕通过上一节的例子我们已经知道一些简单的使用颜色的方法。这一节我们进一步讲讲颜色的使用。例2:本例子使用颜色引索模式绘制8个不同颜色的球体,如图二所示。阅读此例时,请主要关注函数palette和DrawColotFans。glIndex设置当前颜色索引。参数为当前颜色索引。本例中glIndexd 函数的参数j+1对应palette中auxSetOneColor函数中的i+1,auxSetOne...
OpenGL编程轻松入门之一个简单的例子(1)

OpenGL编程轻松入门之一个简单的例子(1)

OpenGL编程轻松入门之一个简单的例子(1)2007-05-06 天极 黄燕先编译运行一个简单的例子,这样我们可以有一个直观的印象。从这个例子我们可以看到OpenGL可以做什么,当然这个例子只做了很简单的一件事--绘制一个彩色的三角形。除此以外,我们还可以看到典型的OpenGL程序结构及openGL的运行顺序。例1:本例在黑色的背景下绘制一个彩色的三角形,如图一所示。#include <stdlib.h>#include <GL/glu...
OpenGL编程轻松入门之一个简单的例子(2)

OpenGL编程轻松入门之一个简单的例子(2)

OpenGL编程轻松入门之一个简单的例子(2)2007-05-06 天极 黄燕现在我们对OpenGL程序的典型的程序结构有了一个了解。首先初始化,包括对GLUT库的初始化和对窗口的设置及显示模式的设置。第二,创建窗口。第三,自己创作的核心部分。第四,glutMainLoop 进入GLUT事件处理循环。下面,我们转到我们的创作核心。background这个函数很简单,只有一行语句。glClearColor中的四个参数分别是红、绿、蓝和alpha值。这些值定义...
<< 1 2 3 4 5 6 7 8 9 10 >>