`
文章列表
Opengl shader程序,旗帜混合纹理加载,通过N张图片,能够组合出数百个:http://www.eyesourcecode.com/thread-39015-1-1.html 用GLSL做了一个可以描出物体的边的shader:http://www.eyesourcecode.com/thread-41503-1-1.html GLSL SHADER实现的机器人,手臂可以动:http://www.eyesourcecode.com/thread-21261-1-1.html 更多OpenGL免费源码下载:http://www.eyesourcecode.com/forum-OpenGL-1 ...
ASP.NET能够成为一个庞大的软件体系,与它提供了大量的对象类库有很大的关系。这些类库中包含许多封装好的内置对象,开发人员可以直接使用这些对象的方法和属性,因此用较少的代码量就能轻松完成很多对象。 这篇博客就 ...
1. 结构体与类定义方式 结构体定义使用struct类定义使用class 结构体:     struct testDemo{         int num;         void action(){         }     }    类:     class testDemo{         int num;         void action(){         }     } ================== 2. 结构体与类的成员初始化 结构体成员变量在声明时不能赋值,而类在声明变量时会自动写入构造函数完成赋值(即只能定义,不能执行)。 结构体中隐式构造函数存在 ...
命名空间 |  功能描述 System |  包含CLR的基本类型和基类,定义了常用的值类型和引用类型,事件、接口、属性和异常处理等 System.Text | 包含用于文本处理的类,实现了不同编码方式操作文本 System.IO | 操作I/O流,提供了处理文件、目录和内存流的读/写与遍历操作等 System.Windows.Forms | 包含了用于创建Window GUI应用程序的类 System.Data | 提供的各种类实习哪了ADO.NET System.Web | 用于实现ASP.NET应用和ASP.NET Web Services的基础类库 System.XML | 包含了处理 ...

C#中的里氏替换原则

    博客分类:
  • C#
里氏转换原则 子类可以赋值给父类对象 父类对象可以强制转化为对应的子类对象 里氏替换原则直观理解就是"子类是父类",反过来就说不通了. 就像男人是人对的,但人是男人就不对了. 这样明白了吧. 在面向对象思想中可知,派生类拥有基类向下公开的所有特征,它是基类的一个特例。 当派生类对象赋于基类类型时,将出现以下情况:派生类的数据结构依次对应于基类的数据结构。而派生类拥有的自己的数据将不可见。 当基类的对象试图转换为派生类型时,将出现基类对象的数据无法依次填充完派生类的所有数据结构。这就造成了它将无法完成派生类定义的功能。编译器将会提示甚至报错。 这就是派生类能胜任 ...
Java中的 split  函数是用于按指定字符(串)或正则去分割某个字符串,结果以字符串数组形式返回; 例如: String str="1234@abc"; String[] a = str.split("@"); System.out.println("处理结果: "+a[0]+","+a[1]);   //输出的是: 处理结果: 1234,abc 对于分割的字符(串),通常是常见,普通的,没什么问题; 但是对某些特殊字符,如果字符(串)正好是正则的一部分,则需要转义才能使用, 这些字符有 | , + , ...
根据《real-time shadow》这本书第二章中的推导,实现了最简单的阴影技术。 planar shadow通过一个投影矩阵将被灯光照射的物体的顶点沿着光线方向投影到接受阴影的平面。 关键的问题是这个投影矩阵怎么得到。 阴影所在平面用下式表示:其中n是法线,d是常量,x是平面上的点。 灯光和被投影的顶点所在的直线用下式来表示:,其中l是光源的位置,v是被投影的顶点,t是系数。 推导过程: 所以最终得到投影到平面上的顶点坐标写成齐次坐标的形式为: 写成矩阵的形式就是 为了在代码中实现,我新加了两个类,分别是Mesh和Program,因为在析构时涉及到删除OpenGL内部的资源的问题, ...
对于一个三角形,我要给它正反面不同的颜色。然后通过旋转,看出它的效果。 我只想到了2种方法,下面我来写一下这两种方法。 第一种方法,通过角度的判断重设glColor3f的参数(这种方法局限性很大,不推荐,不喜欢的可以 ...

MATLAB squeeze 函数

squeeze  除去size为1的维度 B = squeeze(A) 描述: B = squeeze(A),B与A有相同的元素,但所有只有一行或一列的维度(a singleton dimension)被去除掉了。A singleton dimension的特征是size(A,dim) = 1。二维阵列不受squeeze影响; 如果 A 是一个row or column矢量或a scalar (1-by-1) value, then B = A. 比如,rand(4,1,3)产生一个均匀分布的阵列,共3页,每页4行1列,经过squeeze后,1列的那个维度就没有了,只剩下4行3列的一个二维阵列。 ...
刚开始学习OpenGL,感觉这个挺有趣的(在绘制三维模型时,空间想象能力要求比较高,不然很头疼的)。 新东西,新心情。。。来一发红色三角形。 我就是要通过OpenGL来绘制一个红色的三角形。现在我们来看一下代码: #include <GL/glut.h> void display() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清除屏幕和深度缓存 glLoadIdentity(); // 重置当前的模型观察矩阵 glTranslatef(0.0f, 0.0f, -5.0f); // 移入屏幕5个单位 gl ...

迷宫求解

采用了以栈为基础,在栈的基础上进行迷宫的求解,用Stack和Maze两个文件来实现功能。 Stack.h的实现如下: #pragma once #include <stdio.h>  #include <malloc.h>  #include <stdlib.h>  #include <string.h> typedef int DirectiveType;        //下一个通道方向  #define RANGE 100                 //迷宫大小  #define STACK_INIT_SIZE 100 # ...
#include <cmath> #include <opencv2/opencv.hpp> using namespace cv; using namespace std; const int kvalue = http://blog.csdn.net/kh1445291129/article/details/15;//双边滤波邻域大小 const double PI = 3.14;//圆周率 int graylevel(Mat image, Mat dst, Point cen, int r)//求取圆形 ...
串的定长顺序存储表示是一种类似于线性表的顺序存储结构,用一组地址连续的存储单元存储串值的字符序列。 在实现时主要实现以下功能: int Length(SString s);                               //串长 bool StringConcat(SS ...
在matlab中经常需要对数据进行曲线拟合,如最常见的多项式拟合,一般可以通过cftool调用曲线拟合工具(curve fit tool),通过图形界面可以很方便的进行曲线拟合,但是有些时候也会遇到不方便用图形工具。因此这里简单的记下两种常用的拟合方法。 1 多项式拟合(polyfit和polyval) polyfit可以对数据进行拟合(自定义用几次多项式),返回相应的参数,然后用polyval生成拟合后的数据点,下面的例子中我们对抛物线y=3x2+6x+5进行拟合。 x = -5:0.1:5; y = 3*x.^2+6*x + 5 + randn(size(x)); p = polyfit(x ...
Matlab绘图 强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。此外,Matlab还提供了直接对图形句柄进 ...
Global site tag (gtag.js) - Google Analytics