自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (10)
  • 收藏
  • 关注

原创 #ifndef 头文件卫士 只防止一个.cpp里的重定义(因为#define只作用于一个.cpp),而不是多个.cpp

#ifndef 头文件卫士是为了保证类的头文件在一个.cpp文件中被多次引用后会不会出现重复定义的问题,注意,只是防止在一个.cpp文件中被多次引用.#ifndef ELEMTYPE_H#define ELEMTYPE_H的意思是,如果前面没有定义ELEMTYPE_H,那么现在定义ELEMTYPE_H它不需要有值,只是表明是否被定义过,它是为了防止头文件的重复定义我举个简单的例子帮助你理解:你在a.h里定义了一个类a:class a{}然后在b.h里定义了一个类b,而且引用了a.h:#include "a.

2010-11-30 16:23:00 6917

原创 VS2008+ WINDOWS SDK v7.0+OSG+ 多点触摸 multi-touch

<br />想在WIN7系统下用OSG开发一个多点触摸系统.OSG无VS2010的版本,其实也可以自己编译,但要花很长时间,所以干脆用VS2008,但因为多点触摸的库函数等是在WINDOW SKD v7.0下的,所以要下载SKD v7.0的安装文件(注意不能是v6.0或v7.1),下载地址如下(GRMSDK_EN_DVD.iso   1480.6MB ): http://www.microsoft.com/downloads/en/details.aspx?FamilyID=71deb800-c591-4f

2010-11-30 10:08:00 3773

原创 类似孔明棋,寻找棋局中到达目标点的最短路径(深搜和广搜)

<br />主题内容:有个游戏玩法很类似孔明棋.<br /><br />其游戏的原始规则如下:<br /><br />原始棋盘为这样:<br />假设0为空格 1为棋子<br /><br /><br />0000000<br />0000000<br />0000000<br />0000000<br />1111111<br />1111111<br />1111111<br />1111111<br /><br />1.棋子的移动必须经由跳过其隔壁(可以是水平或是垂直,但不能走斜角)的一颗棋到空格<br

2010-11-27 12:08:00 3966

原创 球光照模型

先根据经纬度计算出球面上各点,再把球分成很多小三角形,其中两极除外的四边形也分成上下二个三角形,画三角形(设为P0P1P2)时,每个点计算该面本身(pl),下面(Pdown),右面(Pright),右下面(Pdownright),求光照时,根据每个点到光源位置的经衰减后得到光线颜色(f[i]=1.0/(c0+c1*dist[i]+c2*dist[i]*dist[i])),再分别计算环境光,漫反射光,镜面反射光,加点该点的颜色上(点的颜色是该点右下面的颜色,计算时也要检测光源是否能够照到该点上,如果光照不到点

2010-11-08 17:28:00 1610

原创 立方体的纹理映射(黑白色交替)

1.使用透视投影,即有(phi,theta,R),2.在一个平面(P0,P1,P2,P3)(该平面为空间任一平面,可能是斜的)上,以某点为XY坐标系的原心(如P3),获取纹理坐标(u,v)上的点的实际坐标Pm,再将其投影(Project())到二维显示器上,并设置点颜色(SetPixel())为黑色或白色.其中计算(u,v)上的点的实际坐标Pm方法如下(其中P0P1P2P3是正方形,P3=P2-P1+P0,Pm= P3+u*P2P1+u*P0P1=(P1-P0)*u+(P1-P2)*v+P2-P1+P0):

2010-11-08 16:55:00 2189

原创 立方体明暗处理(即立方体隐面算法加上颜色)

算法是在隐面的基础上,加上了颜色双线性插值.{1}隐面:使用透视投影,即有(phi,theta,R),再用,即如果视向量S(视点E与平面上任意一点组成的向量P1:P1E)与法向量N(可由面上三个点P1P2P3组成,P1P2*P2P3)求数量积S.N >= 0,则绘制该面;否则表示人看不到该面,故要隐藏该面.(2)颜色插值类似于Z-Buffer隐面算法,对每个面,每条扫描线,每次找2个点,设置像素颜色为双线性插值颜色.Is=Interpolation(CurrentB->ScanLine,HeadE->y1,

2010-11-07 17:16:00 2073

原创 立方体画家消隐算法与Z-Buffer消隐算法 比较

立方体画家消隐算法与Z-Buffer消隐算法在别的方面有所类似,只是算法核心思想不同: 一.立方体Z-Buffer消隐是对于某一个像素点,不必对在靠近或远离视点的面进行排序,只需在遍历各面后找出该像素的深度最大的点(Z最大,即离视点最近)(先找深度大的点setPixel(),如果以后还有深度更大的,则通过设置新的颜色setPixel()来覆盖以前的点,其中要注意以yi为扫描线时,扫描线可能不与屏幕平行,可能是倾斜着的,就像把opengl的X轴绕Y轴旋转一个角度,如向量(1,-1,0),此次每次随x增大,z也

2010-11-05 16:47:00 2614

原创 立方体Z-Buffer消隐算法

Z-Buffer消隐算法:主要函数:void ReadPoint();//读入顶点表函数,此处为立方体的8个顶点m_point[8]    void ReadColor();//读入颜色函数,即立方体六个面的颜色    void ReadFace();//读入面表函数,即设置面上4个点的索引值    void PolygonFill(CDC*);//填充多边形函数    void CreatBucket();//建立桶结点函数    void Et();//构造边表函数    void AddAet(Edg

2010-11-04 09:45:00 12124 4

原创 多边形有效边表填充算法

<br />绘制多边形时用桶结构,其实类似于图里面的邻接表,从上到下是桶(bucket),右边链接的指针是边(edge).<br />class Bucket  //桶类<br />{<br />public:<br />    Bucket();<br />    virtual ~Bucket();<br />    int ScanLine;<br />    AET *p;//桶上的边表指针<br />    Bucket *next;<br />};<br />class Edge  //边类<b

2010-11-03 22:18:00 17126 4

原创 三视图

<br />三维坐标点投影到二维屏幕上的点时:<br />x1= y- x/<br />y1= -z+ x/<br />要计算在屏幕上的投影值,即相当于下图中计算点在YZ上的坐标值,其中,X与Y,Z轴夹角均为135度,PP1=z.故可计算二维坐标,要记住屏幕窗口的原点在左上角,X往右递增,Y往下递增.<br /><br />代码如下(计算机图形学实例43(Visual C++版) 孔令德): <br />void CTestView::Transform3DTo2D(const double P3D[7][

2010-11-02 10:35:00 1957

原创 透视图

透视图三维投影代码如下:void CTestView::Project(int x,int y,int z)//透视变换{    double x0,y0,z0;//观察坐标系三维坐标    x0=k[1]*x-k[3]*y;    y0=-k[7]*x-k[8]*y+k[2]*z;    z0=-k[5]*x-k[6]*y-k[4]*z+R;    x2d=D*x0/z0;y2d=D*y0/z0;//屏幕坐标系二维坐标}void CTestView::InitParameter()//初始化参数{    

2010-11-01 19:06:00 1009

数据结构与算法 面向对象的C++设计模式 源代码

数据结构与算法 面向对象的C++设计模式 源代码 可供参考 非常好

2013-03-20

Jacobi__矩阵特征值和特征向量(详细,有例子)

Jacobi__矩阵特征值和特征向量(详细,有例子)

2012-11-21

3D常用算法

3D常用算法 A*算法 BSP 八叉树等 讲解很详细,值得学习.

2012-09-18

计算几何——算法分析与设计 周培德

计算几何——算法分析与设计 周培德 非常经典

2012-08-20

肖鹏的CSouth漫游器 详解+源代码

肖鹏的CSouth漫游器 详解+源代码 详细、清晰

2012-01-17

投影矩阵、视口矩阵推导过程

投影矩阵、视口矩阵推导过程

2012-01-07

MFC系统键屏蔽(钩子)

MFC系统键屏蔽(用钩子做的,能屏蔽系统徽标键,CTRL+TAB,CTRL+ALT+DELETE及任务栏)

2010-07-24

MFC 位图 按钮 多种方法

位图按钮(新建类,拖按钮控件),以及位图按钮(新建类,纯代码控制),用CButton来显示位图

2010-07-23

VC截图 简单易行 注释详细

一个屏幕截图软件,用VC编写.希望大家下载,如有问题,望指正

2010-05-02

逆转单向链表(有7种方法)

单链表的7个转换函数,大家可以试一下.有什么问题的话跟我联系一下.

2008-08-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除