- 博客(130)
- 资源 (12)
- 收藏
- 关注
转载 并发和并行,异步与多线程区别
转自:http://blog.csdn.net/woliuyunyicai/article/details/451658691、并发和并行的区别可由上图形象指出两者的区别:1)定义:并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。并
2017-07-24 10:02:02 3404
原创 操作系统基础知识概论
1.操作系统资源管理技术:(1)目的:首先,物理资源有限而竞争使用资源的应用程序众多,必须合理地解决物理资源数量不足、合理分配资源等问题;其次,物理资源的硬件实现非常复杂,用户几乎不可能直接使用,只能借助系统来实现资源的易用性;所以,资源管理:在相互竞争的应用程序之间有序地控制软硬件资源分配、使用、回收,以使得资源能够在多个程序之间共享;资源管理技术(1)复用 资
2017-04-03 13:44:33 2169
转载 进程上下文和处理器状态切换
进程上下文VS中断上下文1.内和空间和用户空间内核空间和用户空间是现代操作系统的两种工作模式,内核模块运行在内核空间,而用户态应用程序运行在用户空间。它们代表不同的级别,而对系统资源具有不同的访问权限。内核模块运行在最高级别(内核态),这个级下所有的操作都受系统信任,而应用程序运行在较低级别(用户态)。在这个级别,处理器控制着对硬件的直接访问以及对内存的非授权访问。内核态和用户态有自己的内
2017-04-03 12:48:31 2580
转载 c++虚函数实现机制及内存模型
前言大家都应该知道C++的精髓是虚函数吧? 虚函数带来的好处就是: 可以定义一个基类的指针, 其指向一个继承类, 当通过基类的指针去调用函数时, 可以在运行时决定该调用基类的函数还是继承类的函数. 虚函数是实现多态(动态绑定)/接口函数的基础. 可以说: 没有虚函数, C++将变得一无是处!既然是C++的精髓, 那么我们有必要了解一下她的实现方式吗? 有必要! 既然C++是从C语言
2017-03-30 16:35:18 1520
原创 设计模式:Abstract Facotry(抽象工厂) 模式
Abstract Factory 抽象工厂模式:简单工厂,主要目的是为了创建具体的Object,对象比较单一化。而且简单工厂基本采用继承机制。而抽象工厂对象比较复杂,需要为特定情况创建对象组。抽象工厂的主要目的:协调对象组,提供一种方式,将如何执行对象实例化的规则从使用这些对象的客户对象提取出来。理解:举个栗子:现在一家电子工厂正在加工设备,现在生产PC和手
2017-03-08 21:18:33 495
原创 设计模式:Bridge(桥接)模式
Bridge模式:桥接模式模式概述:低耦合和高内聚一直是面向对象设计所追求的重要目标。耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息内聚性:又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。
2017-02-27 13:32:24 655
原创 设计模式:Strategy(策略)模式
Strategy模式:策略模式。模式概述:定义一系列的算法,把他们一个个封装起来,并且使它们可以相互替换,Strategy模式使算法可以独立于使用它的客户而改变。在软件开发过程中,会遇到实现某一个功能有多种算法或者策略。我们可以根据不同的环境来选择不同的算法或者策略。如果我们统一的将这些算法的实现集成在同一个方法(函数中),可能需要用到较多的if...else...。或者我们将其集
2017-02-26 21:11:15 673
原创 设计模式:Adapter(适配器)模式
Adapter模式,适配器模式模式描述:有时候我们需要改变接口,那么接口改变后如何让原有的方法适配新的接口?这是我们经常需要考虑的。Adapter模式将一个类的接口转换成我们希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。Adapter模式的关键特征:意图:使控制范围之外的一个原有对象与某个接口匹配。问题:系统的数
2017-02-26 17:09:40 570
原创 设计模式:Facade(外观)模式
模式:Facade模式,也称为外观模式。一、模式描述:在我们使用一个复杂系统的一些功能时,可以通过外观模式对这些功能进行包装,使得应用程序只能看到该接口,而不会看到该系统的实现细节。这样就可以降低应用程序的复杂度。并且提高程序的可维护性。二、外观模式的关键特征:意图:简化原有系统的使用方式,需要定义自己的接口。问题:字需要使用某个复杂系统的一些子系统,或者需要以
2017-02-20 20:28:15 601
原创 设计模式基础
面对对象泛型:功能分解和需求变更:功能分解:是将一个问题逐渐分解为更小功能的方法,每个函数都分解到可以管理为止。结构化程序员常使用功能分解进行程序设计。需求变更:简单来说,需求变更就是在开发过程中,对原有的需求进行了更改,例如:增加新的需求、删除某些需求、变更需求等等。功能分解的两大弊端:分析人员通过分析,将问题分解为更小的问题来进行管理和解决。这些更小的问题解决起来比
2017-02-20 11:43:58 738
原创 DX11编程(三):矩阵代数
矩阵篇在3D计算机绘图中,我们用矩阵(matrix)来紧凑地描述几何变换,比如缩放、旋转和平移,并将点或向量的坐标从一种坐标系转换到另一种坐标系。一、矩阵的定义一个m×n矩阵M是一个m行、n列的矩形实数数组。行和列的数量指定了矩阵的维数。矩阵中的数值称为元素。我们使用行和列组成的双下标Mij来标识矩阵元素,其中,第1个下标指定了元素的所在的行,第2个下标指定了元素所在的列。二、矩阵的乘法假设A是一个
2017-01-06 15:43:54 1118
原创 DX11编程(二):向量代数
向量篇计算机绘图、碰撞检测和物理模拟是现代视频游戏的基本组成部分,向量(vector)在这些领域中具有至关重要的作用。向量(vector)是一种同时具有大小和方向的物理量(quantity)。同时具有大小和方向的物理量称为向量值物理量(vector-valued quantity)。常见的向量值物理量有:力(在某个特定方向上施加一定的作用力——量值),位移(在某个净方向上移动一段距离),速度(速率和
2017-01-06 15:12:23 669
原创 DX11编程(一):DX和Effect的基本配置和属性表配置
DX的基本配置一、下载DirectX SDK(DX11)下载DX11安装包 密码:o0sq 下载后安装即可。二、配置.h文件和.lib文件路径:在安装好之后,打开VS2013,创建一个工程,在解决方案资源管理器的工程名处点击右键,打开“属性”:打开属性后,在“配置属性->VC++目录”下的“包含目录”添加你的DirectX安装目录\include 如:我的安装路径是:C:\Program Fi
2017-01-06 11:12:11 3495
原创 DX11游戏编程:游戏中中定时器的简略设计和实现
计时器原理:在动画中,为了能够使动画播放的更加流畅,我们需要对时间进行精确的把握。特别的,我们需要权衡播放动画时,两帧之间的间隔。这个间隔呢,时间很是短暂,于是,我们需要更加精确的计时器。那么,我们经常通过两个静态变量来进行计时的方法就显得不可取了。下面,我们就来设计一个计时器。这个计时器用到了Windows中的高精度计时喊数:QueryPerformanceCounter和Que
2016-10-02 23:59:05 2751
原创 DX11:先定一个小目标,比如:把DX11龙书上的知识点系统的总结下来
最近要开始学习DX11了。前段时间一直在看DX9,就是为学习DX11做准备。因为DX11龙书是英文的,搞的我很是头大,毕竟不常阅读英文文献,确实翻译能力有限。但是作为一个程序员,怎么可能被这种问题所难倒?网上说的对:程序员的存在就是为了解决问题。或者说,优秀的程序员和普通程序员之间最大的差别就在于一件事情别人能做,而你却不能。如今,我还是国内某所大学的学生,虽然我现在还很菜,但是我想做别人所不能做
2016-09-25 13:40:43 2651
原创 DirectX学习笔记(十五):粒子系统实现
本系列文章由zhmxy555(毛星云)编写,转载请注明出处。 文章链接:http://blog.csdn.net/zhmxy555/article/details/8744805作者:毛星云(浅墨) 邮箱: happylifemxy@163.com 本篇文章中,我们将一起探讨三维游戏中粒子系统的方方面面,首先对粒子系统的基本概念特性做
2016-09-24 15:39:12 3845
原创 DirectX学习笔记(十四):三维地形系统的实现
本系列文章由zhmxy555(毛星云)编写,转载请注明出处。 文章链接: http://blog.csdn.net/zhmxy555/article/details/8685546作者:毛星云(浅墨) 邮箱: happylifemxy@163.com 上个星期浅墨写的介绍三维摄像机的文章和示例程序放出以后,大家似乎都表现出了很高涨的热情,
2016-09-24 15:34:25 5345 2
原创 DirectX学习笔记(十二):网格进阶之(XFile文件导入、渐进网格原理及外接体的)实现
XFile文件:前面的十一篇的内容里,绘制物体的方式大多都是采用DX内部的接口或者函数。现在你可以想一想。
2016-09-23 17:46:31 4219
转载 DirectX学习笔记(九):模板缓存与镜面效果实现
本系列文章由zhmxy555(毛星云)编写,转载请注明出处。 文章链接: http://blog.csdn.net/zhmxy555/article/details/8632184作者:毛星云(浅墨) 邮箱: happylifemxy@163.com 本博客 转自: http://blog.csdn.net/zhmxy
2016-09-19 21:13:20 6069
原创 DirectX学习笔记(八):Direct3D融合技术详解及物体透明效果的实现
前言:融合技术,将当前要进行光栅化的像素的颜色与先前已经光栅化并处于同一位置的像素的颜色进行合成,即:将正在处理的图元颜色值与存储在后台缓存中的像素颜色值进行合成,利用该技术,可以获得很多种效果,比如:透明效果。相关知识说明:1.融合方程:当我们处于背景图和茶壶三角形单元进行光栅化计算时,我们需要将计算得到的茶壶的像素颜色和背景图
2016-09-18 22:03:55 6224
原创 DirectX学习笔记(七):Direct3D纹理映射技术详解及实现
前言: 如果我们想要将一个正方体绘制成一个板条箱的样式,那么我们就需要D3D中的纹理映射技术。纹理是一个像素矩阵,它可以被映射到三角形单元,以此来该变物体的显示样式。这样就可以增加所绘制场景的真实感。1.纹理坐标:
2016-09-17 15:52:46 8116
原创 DirectX学习笔记(六):Direct3D中模拟实现光照下的物体绘制
前言:一般来讲,光照的使用有助于增强场景的真实感,也有助于描述实体的形状和立体感。在Direct3D中,Direct3D会将顶点送入光照计算引擎,依据光源类型,材质,以及物体表面想对与光源的朝向,计算出每个顶点的颜色值。这样,我们就无需自行指定顶点的颜色值。1.光照的组成:光照分为三种:1.环境光:这种类型的光经过其他表面反射到达物体的表面,并且照亮整个场景。2.漫射光:这种类型光
2016-09-15 15:17:39 3622
原创 DirectX学习笔记(五):利用平面着色和Gouraud着色模式绘制具有颜色的三角形
完整代码:#include #include #include IDirect3DDevice9* Device = 0; // 一个C++对象,代表了我们用来显示3D图形的物理硬件设备 IDirect3DVertexBuffer9* Triangle = 0;//顶点缓存 D3DXMATRIX WorldMatrix;const int Width = 640; /
2016-09-14 14:37:04 4466
原创 DirectX学习笔记(四):利用D3DX网格数据结构绘制可旋转茶壶
完整代码:#include#include#includeIDirect3DDevice9* Device = 0; // 一个C++对象,代表了我们用来显示3D图形的物理硬件设备const int Width = 640; //窗口的宽度const int Height = 480; //高度ID3DXMesh* Teapot = 0;//---------------
2016-09-13 16:02:01 4030 1
原创 DirectX学习笔记(三):利用线框模式绘制可旋转的正方体
前言:一个场景中,任何物体都可以用三角形网格来逼近表示。也就是说,三角形网格是构成物体模型的基本单元。如图:利用线框模式绘制可旋转的正方体的具体操作:1.顶点缓存和索引缓存:一个多边形中相邻的交汇点称为顶点,描述三角形单元时,我们需要指定该三角形3个顶点的位置。那么如果我们要通过三角形单元来描述一个物体,就需要指定构成该物体的三角形单元。但是
2016-09-12 22:24:20 7333 1
原创 DirectX学习笔记(二):Direct3D初始化详解
前言:Direct3D是一套底层的API,即:应用程序接口。Direct3D主要用来开启硬件加速功能来绘制3D场景,它可以看做是应用程序和图形设备(3D硬件)交互的中介:Application为应用程序;Direct3D为硬件定义好的、由Direct3D提供给应用程序的接口和函数。这些接口和函数就是当前版本Direct3D所支持的全部。HAL为硬件抽象层,因为大家使用的图形卡不
2016-09-11 19:10:05 8772 2
原创 DirectX11:DirectX11下载和环境配置
前言:VS2013下DirectX11的配置。配置步骤:1.安装DirectX SDK2.配置.h 和.lib文件路径3.在VS中链接.lib文件。一、下载DirectX SDK(DX11)点击打开链接 密码:o0sq下载后安装即可。二、配置.h 和.lib文件路径:在安装好之后,打开VS2013
2016-09-09 20:32:58 13457 2
原创 重拾算法(二):优秀程序员必须知道的32个算法。
奥地利符号计算研究所(Research Institute for Symbolic Computation,简称RISC)的Christoph Koutschan博士在自己的页面上发布了一篇文章,提到他做了一个调查,参与者大多数是计算机科学家,他请这些科学家投票选出最重要的算法,以下是这次调查的结果,按照英文名称字母顺序排序。1.A搜索算法——图形搜索算法,从给定起点到给定终点计算出
2016-08-30 22:17:24 2800
原创 重拾算法(一):算法效率分析(空间复杂度和时间复杂度)
算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作空间复杂度。时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额外空间,在计算机发展的早期,计算机的存储容量很小。所以对空间复杂度很是在乎。但是经过计算机行业的迅速发展,计算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再关注一个算法的空间复杂度。我们在
2016-08-30 20:14:52 16968
原创 C#编程:~你所了解的C#委托
前言:我是一个C++的铁杆粉丝,但是现在还是一个正在学习C++ 的小白。因为毕业后想搞游戏开发,所用的引擎是Unity,所以不得不好好学习C#。我在从C++ 转而学习C#时,遇到的第一个问题就是C# 中的委托和事件。(我认为C# 的委托特别像C++ 中的函数指针,但是比函数指针要强大)。本篇博文我将会详细讲解什么是C# 的委托,以及关于C# 委托的相关常用操作方法。C#委托的引入:
2016-08-23 22:20:26 1336
原创 MyEclipse 下'Publishing to Tomcat'has encountered a problem解决办法
首先贴出来错误:详情为:Publishing failedCould not publish to the server.There were issues during deployment to server Tomcat v7.0 Server at localhost. See Error Log for details.Deployment failedC
2016-08-21 14:12:34 34135 10
原创 白话篇:零姿势实现排序二叉树的建立与查找
二叉排序树还有很高比各的名字:二叉查找树,二叉搜索树。为什么这么称为呢?我们来看下二叉树的定义:二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)左、右子树也分别为二叉排序树;(4)没有键值相等的结点。那么意思就是:对于一组数据,
2016-06-01 19:45:30 2207
原创 白话篇:利用二叉树先序/中序/后序确定二叉树求法分析
前篇:二叉树的遍历:二叉树的遍历是指按照一定次序访问二叉树中所有的节点,并且每个节点仅仅能够访问一次。这也是二叉树最基本的运算。常用的3钟递归遍历方式:1.先序遍历,过程:(1)访问根节点(2)访问左子树(3)访问右子树2.中序遍历,过程:(1)访问左子树(2)访问根节点(3)访问右子树3.后序遍历:(1)访问左子树(2)访问右子树(3)
2016-05-31 13:49:09 6035 1
原创 C++I/O输入输出
1.流和缓冲区:我们通常说的流,可以理解为从一个地方流向另一个地方。在C++中的I/O是指的输入/输出端口,那么I/O流就可以简单的理解为在外部设备和内存之间的数据流动。直白的讲,流实际上是一个字节序列,即:字节流。而C++程序把输入输出看做字节流,所以C++的输入输出是以字节流的形式实现的。输入时,程序从流中抽取字节;输出时,程序将字节插入到输出流中。简单说下:输入流:与输入设备(如
2016-04-19 21:28:50 3573
原创 最近点对问题 Swust Oj 794
Swust oj 794问题描述:设p1=(x1, y1), p2=(x2, y2), …, pn=(xn, yn)是平面上n个点构成的集合S,设计算法找出集合S中距离最近的点对。多组测试数据,第一行为测试数据组数n(0每组测试数据输出一行,为该组数据最近点的距离,保留4为小数。#include#include#include
2016-04-12 22:52:05 2745
原创 约瑟夫问题实现的方法总结
题目:n个人围成一个圈,每个人分别标注为1、2、...、n,要求从1号从1开始报数,报到k的人出圈,接着下一个人又从1开始报数,如此循环,直到只剩最后一个人时,该人即为胜利者。例如当n=10,k=4时,依次出列的人分别为4、8、2、7、3、10,9、1、6、5,则5号位置的人为胜利者。给定n个人,请你编程计算出最后胜利者标号数。(要求用单循环链表完成。)第一行为人数n; 第二行为报
2016-04-11 20:47:19 22598 3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人