- 博客(45)
- 资源 (13)
- 收藏
- 关注
转载 24种设计模式大全-牛人详解
Longronglin之设计模式:Christopher Alexander 说过:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”。模式描述为:在一定环境中解决某一问题的方案,包括三个基本元素--问题,解决方案和环境。阅读类图和对象图请先学习UML创建模式 结构模式 行为模式创建模式:对类的实
2016-09-25 22:13:11 5420 2
转载 Unity内存申请和释放
1.资源类型GameObject, Transform, Mesh, Texture, Material, Shader, Script和各种其他Assets。2.资源创建方式静态引用,在脚本中加一个public GameObject变量,在Inspector面板中拖一个prefab到该变量上,然后在需要引用的地方Instantiate;Resource.Load,资源需要放在
2015-08-06 12:15:12 925
转载 国外程序员整理的 C++ 资源大全
摘要:C++是在C语言的基础上开发的一种集面向对象编程、泛型编程和过程化编程于一体的编程语言。应用较为广泛,是一种静态数据类型检查的,支持多重编程的通用程序设计语言。关于 C++ 框架、库和资源的一些汇总列表,由 fffaraz发起和维护。内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。标准库C++ Standard
2015-03-19 20:06:39 2020
转载 一种Unity2D多分辨率屏幕适配方案
先说明一些基本的概念:1.屏幕的宽高比Aspect Ratio = 屏幕宽度/屏幕高度2.Unity2D中摄像机镜头的尺寸决定了我们实际看到游戏内容的多少,在编辑器中我们可以通过调整摄像机Camera的orthographicSize属性值来调整摄像机的大小。如下图所示,当摄像机orthographicSize属性值等于当前屏幕高度单位的一半时,摄像机大小正好与屏幕大小相等。注意这
2015-01-29 16:50:49 1220
翻译 Unity3d——自定义编辑器Editor教程
Star,自定义编辑器的介绍一、介绍在本教程中,您将创建一个简单的star控件,并为他编写属于自己的自定义编辑器。你会学到:l 动态生成一个mesh;l 使用一个嵌套类;l 创建一个自定义编辑器;l 使用SerializedObject;l 支持WYSIWYG(所见即所得)的编辑; l 对撤销,重做,还原和预设修改做出反映;l 支持多对象编辑;
2014-12-25 13:59:46 3247
原创 Myeclipse8.6_for_Spring性能优化…
第一步: 取消自动validationvalidation有一堆,什么xml、jsp、jsf、js等等,我们没有必要全部都去自动校验一下,只是需要的时候才会手工校验一下!取消方法:windows–>perferences–>myeclipse–>validation除开Manual下面的复选框全部选中之外,其他全部不选手工验证方法:在要验证的文件上,单击鼠标右键–>myeclip
2014-12-25 13:09:18 647
原创 四、DOM4J解析XML
DOM4J 是一个非常非常优秀的Java XMLAPI,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。如今你可以看到越来越多的 Java 软件都在使用DOM4J 来读写 XML,特别值得一提的是连 Sun 的 JAXM 也在用 DOM4J。packageFourWayToAnalyticXml;importInterface.XmlDocument;
2014-12-25 13:09:16 415
原创 三、JDOM解析XML
为减少DOM、SAX的编码量,出现了JDOM;优点:20-80原则,极大减少了代码量。使用场合:要实现的功能简单,如解析、创建等,但在底层,JDOM还是使用SAX(最常用)、DOM、Xanan文档。packageFourWayToAnalyticXml; importjava.io.FileNotFoundException;importjava.io.FileO
2014-12-25 13:09:13 418
原创 二、SAX解析XML
为解决DOM的问题,出现了SAX。SAX,事件驱动。当解析器发现元素开始、元素结束、文本、文档的开始或结束等时,发送事件,程序员编写响应这些事件的代码,保存数据。优点:不用事先调入整个文档,占用资源少;SAX解析器代码比DOM解析器代码小,适于Applet,下载。缺点:不是持久的;事件过后,若没保存数据,那么数据就丢了;无状态性;从事件中只能得到文本,但不知该文本属于哪个元素;
2014-12-25 13:09:10 401
原创 一、DOM解析XML
为 XML 文档的已解析版本定义了一组接口。解析器读入整个文档,然后构建一个驻留内存的树结构,然后代码就可以使用 DOM接口来操作这个树结构。优点:整个文档树在内存中,便于操作;支持删除、修改、重新排列等多种功能;缺点:将整个文档调入内存(包括无用的节点),浪费时间和空间;使用场合:一旦解析了文档还需多次访问这些数据;硬件资源充足(内存、CPU)。 packageFou
2014-12-25 13:09:07 429
原创 附:XML文档建立与解析的接口
package Interface; *定义XML文档建立与解析的接口 public interface XmlDocument {*建立XML文档* @paramfileName 文件全路径名称publicvoid createXml(String fileName);*解析XML文档* @paramfileName 文件全路径名称public
2014-12-25 13:09:05 454
原创 B树、B-树、B+树、B*树
B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点关键字
2014-12-25 13:09:02 356
原创 算法的时间复杂度和空间复杂度
排序法最差时间分析平均时间复杂度稳定度空间复杂度冒泡排序O(n2)O(n2)稳定O(1)快速排序O(n2)O(n*log2n)不稳定O(log2n)~O(n)选择排序O(n2)O(n2)稳定O(1)二叉树排序O(n2)O(n*log2n)不一顶O(n)插入排序O(n2)
2014-12-25 13:09:00 479
原创 23种设计模式的形象比喻
设计模式的形象比喻1、ABSTRACT FACTORY 追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时
2014-12-25 13:08:57 805
原创 23种模式概述
设计模式分为三种类型,共23类。 创建型模式:单件模式、抽象工厂模式、建造者模式、工厂模式、原型模式。 结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。 行为型模式:模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。 按alphabeta排列简介如下。 A
2014-12-25 13:08:54 1190
原创 基于JAVA的排序算法之十--几种排序…
十、几种排序算法的比较和选择1. 选取排序方法需要考虑的因素:(1) 待排序的元素数目n;(2) 元素本身信息量的大小;(3) 关键字的结构及其分布情况;(4) 语言工具的条件,辅助空间的大小等。2. 小结:(1) 若n较小(n <=50),则可以采用直接插入排序或直接选择排序。由于直接插入排序所需的记录移动操作较直接选择排序多,因而当记录本身信息量较大时,用直接选择
2014-12-25 13:08:51 550
原创 基于JAVA的排序算法之九--基数排序
九、基数排序java代码实现: 01. 04.importjava.util.Arrays; 05.public class RadixSort{ 06. 07. 13. publicint digit(long x, long d){ 14. 15. long pow
2014-12-25 13:08:49 408
原创 基于JAVA的排序算法之八--桶排序
public class BucketSort {public void sort(int[] keys, int from, int len, int max){int[] temp = new int[len];int[] count = new int[max];for (int i = 0; i {count[keys[from + i]]++;}// calc
2014-12-25 13:08:46 462
原创 基于JAVA的排序算法之七--堆排序
public class HeapSort { public static int[] heap = new int[] { 1, 3,7, 5, 2, 8, 4, 6, 10, 9 };public static void main(String[] args){int temp; CreateHeap();for (int i = heap.length -
2014-12-25 13:08:44 430
原创 基于JAVA的排序算法之六--归并排序
六、归并排序java代码实现: ** 02.归并排序:里面是一个递归程序,深刻理解之。 03.*/ 04.public classMergeSort{ 05. 06. 13. publicvoid partition(Integer[] arr, int from, int end){ 14.
2014-12-25 13:08:41 388
原创 基于JAVA的排序算法之五--快速排序
五、快速排序(Quick Sort)1. 基本思想: 在当前无序区R[1..H]中任取一个数据元素作为比较的"基准"(不妨记为X),用此基准将当前无序区划分为左右两个较小的无序区:R[1..I-1]和R[I+1..H],且左边的无序子区中数据元素均小于等于基准元素,右边的无序子区中数据元素均大于等于基准元素,而基准X则位于最终排序的位置上,即R[1..I-1]≤X.Key≤R[I+1..
2014-12-25 13:08:39 494
原创 基于JAVA的排序算法之四--希尔排序
四、希尔排序一、基本思想:先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成(n除以d1)个组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2该方法实质上是一种分组插入方法。二:排序过程:比较相隔较远距离(称为增量)的数,使得数移动时能跨过多个元素,则进行一次比较就可能消除多个元素交换。D.L.shell于1959年在以他名字
2014-12-25 13:08:36 429
原创 基于JAVA的排序算法之三--插入排序
1. 基本思想: 每次将一个待排序的数据元素,插入到前面已经排好序的数列中的适当位置,使数列依然有序;直到待排序数据元素全部插入完为止。2. 排序过程: 【示例】:[初始关键字] [49] 38 65 97 76 13 27 49 J=2(38) [3849] 65 97 76 13 27 49 J=3(65) [3849 65] 97 76 13 27
2014-12-25 13:08:33 475
原创 基于JAVA的排序算法之二--选择排序
二、选择排序1. 基本思想: 每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。2. 排序过程:【示例】: 初始关键字[49 38 65 97 76 13 27 49]第一趟排序后13 [38 65 97 76 49 27 49]第二趟排序后13 27 [65 97 76 49 38 49]第三趟
2014-12-25 13:08:31 404
原创 基于JAVA的排序算法之一--冒泡排序
各种排序算法:冒择路(入)兮(稀)快归堆,桶式排序,基数排序冒泡排序,选择排序,插入排序,稀尔排序,快速排序,归并排序,堆排序,桶式排序,基数排序一、冒泡排序(BubbleSort)1. 基本思想: 两两比较待排序数据元素的大小,发现两个数据元素的次序相反时即进行交换,直到没有反序的数据元素为止。2. 排序过程: 设想被排序的数组R[1..N]垂直竖立,将每个数据元素看
2014-12-25 13:08:28 373
原创 Bresenham快速画直线算法
直线光栅化直线光栅化是指用像素点来模拟直线. 比如下图中用蓝色的像素点来模拟红色的直线. 图中坐标系是显示器上的坐标系: x轴向右, y轴向下.设deltaX = endX – startX, deltaY = endY – startY. 那么斜率为k = deltaY / deltaX. 我们先考虑简单的情况: 当 0 所以在光栅化的过程中, 在y轴上描的点比在x轴
2014-12-24 17:54:05 1568
原创 动态阴影-RenderTexture
添加RenderTexture添加一个相机背景为透明,颜色值都为0;culling Mask:摄像机的照射层(角色也要在这个层)Target Texture:把摄像机每一帧所看到的图像复制给RenderTexture创建一个plane用于显示阴影。添加一个材质球,Transparent/Diffuse创建一个脚本绑定在影子所在的plane上using
2014-12-06 20:52:43 983
原创 initWithFrame方法的使用
1. initWithFrame方法是什么?initWithFrame方法用来初始化并返回一个新的视图对象,根据指定的CGRect(尺寸)。当然,其他UI对象,也有initWithFrame方法,但是,我们以UIView为例,来搞清楚initWithFrame方法。2.什么时候用initWithFrame方法?简单的说,我们用编程方式申明,创建UIView对象时,使用initWit
2014-12-02 16:11:54 2527
翻译 判断点是否在三角形内
内角和法连接点P和三角形的三个顶点得到三条线段PA,PB和PC,求出这三条线段与三角形各边的夹角,如果所有夹角之和为180度,那么点P在三角形内,否则不在,此法直观,但效率低下。同向法假设点P位于三角形内,会有这样一个规律,当我们沿着ABCA的方向在三条边上行走时,你会发现点P始终位于边AB,BC和CA的右侧。我们就利用这一点,但是如何判断一个点在线段的左侧还是右侧呢?
2014-11-29 10:31:02 640
原创 Unity与Android交互
Android项目必须引用Unity\Editor\Data\PlaybackEngines\androidplayer\bin下的class.jar把Android下的bin 、res、AndroidManifest.xml复制到 Unity的 Plugins/Android 下 如果Android引用了额外的jar包,则把jar包放到Android目录下
2014-11-29 09:58:48 614
原创 协同与多线程区别
协程,即协作式程序,其思想是,一系列互相依赖的协程间依次使用CPU,每次只有一个协程工作,而其他协程处于休眠状态。unity中StartCoroutine()就是协程,协程实际上是在一个线程中,只不过每个协程对CUP进行分时,StartCoroutine()可以访问和使用unity的所有方法和component协同程序(coroutine)与多线程情况下的线程比较类似:有自己的堆栈
2014-11-27 17:35:28 4688
原创 ViewController生命周期
viewDidLoad :放置控制器初始化代码,只会被调用一次。关于几何图形的代码不能放在这里,任何关于视图形状的的初始化信息都不能在这里。 viewWillAppear :在显示视图之前会被调用。每次显示之前都会被调用。网络调用。几何图形信息初始化。 viewWillDisappear :视图离开时调用。 viewWillLayout
2014-11-27 16:29:57 399
原创 iOS数据交互——Delegate委托传递
思想:在A对象里保存了一个B对象的指针,然后在A的某个函数里去设置B对象某个属性的值。1、首先add aFile-- Objective-Cprotocol,然后声明一个传递数值的方法@protocol ViewPassValueDelegate -(void) passValue :( NSString *) value; @end
2014-11-27 16:27:32 1075
原创 iOS数据交互——NSNotificationCenter
Nofication太多会影响效率,因为是一对多传递消息。最好用委托的形式进行消息传递,委托是一对一传递的。发送消息:[[NSNotificationCenter defaultCenter] postNotificationName:@"messageName" object:@"参数
2014-11-27 16:18:02 622
转载 C#网络编程(基本概念和操作)
引言C#网络编程系列文章计划简单地讲述网络编程方面的基础知识,由于本人在这方面功力有限,所以只能提供一些初步的入门知识,希望能对刚开始学习的朋友提供一些帮助。如果想要更加深入的内容,可以参考相关书籍。本文是该系列第一篇,主要讲述了基于套接字(Socket)进行网络编程的基本概念,其中包括TCP协议、套接字、聊天程序的三种开发模式,以及两个基本操作:侦听端口、连接远程服务端;第二篇讲
2014-02-09 16:55:48 803
转载 Unity Mathf 数学运算(C#)
Mathf 数学运算Mathf.Abs绝对值计算并返回指定参数 f 绝对值。Mathf.Acos反余弦static function Acos (f : float) : float以弧度为单位计算并返回参数 f 中指定的数字的反余弦值。Mathf.Approximately近似static function Approximately (a : float, b: f
2013-11-28 12:02:20 984
原创 基于NGUI的背包管理系统之物体拖拽DEMO
using UnityEngine;using System.Collections;public class DragAndDrop : MonoBehaviour { public Camera mCamera; Vector3 mScreenPosition; Vector3 offset ; GameObject Target; bool i
2013-11-25 14:42:07 5195 1
转载 Unity3D 可重载虚函数总结(事件,回调函数,消息处理)
重载虚函数Unity3D中所有控制脚本的基类MonoBehaviour有一些虚函数用于绘制中事件的回调,也可以直接理解为事件函数,例如大家都很清楚的Start,Update等函数,以下做个总结。Awake当前控制脚本实例被装载的时候调用。一般用于初始化整个实例使用。Start当前控制脚本第一次执行Update之前调用。Update每帧都执行一次。这是最常用的事件函数。
2013-08-15 14:58:56 1296
原创 Unity3D多开方法
设置很简单,主要有以下几个步骤:1、右键点击Unity的快捷方式,选择“属性”,然后在“目标”一栏的最后加入“ -projectPath”,如下图所示: 2、“确定”后就可以多开Unity了。这时双击Unity的快捷方式,会弹出“Project Wizard”菜单,这样你就可从以下列表中选择你想打开的项目。3、通过多次打开Unity的快捷方式,你就可
2013-08-14 10:34:53 2242
转载 Unity3D 脚本所有编译器属性详解
Script属性是基于IDE的一系列编译器属性JS中用@script 属性方法()访问,c#中用[属性方法()]访问。一共就只有9种属性访问方式:AddComponentMenu 在Component菜单中添加新的菜单项ContextMenu 在当前脚本的组件中添加右键菜单内容ExecuteInEditMode 让当前脚本可以在运行模式中实时更新修
2013-08-08 17:48:23 2132
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人