自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 收藏
  • 关注

原创 对于更新MAC系统后UNITY工程无法加载资源的解决办法

解决步骤打开Launchpad中的磁盘工具新建一分区,名称大小任意,格式为MAC OS 扩展(日志式) 将unity工程移至新分区OK,工程已经可以正常加载了原因问题的主要原因是macos10.13将文件系统改为APFS格式,而unity目前只有Unity2017beta更新了相关的支持,目前旧版本在新系统中仍有不少问题,只能等待unity发布补丁或回退mac系统。

2017-12-06 23:03:43 7903 1

原创 GIT---分支介绍

GIT简单解析commit对象,tree,blob首先blob对象表示文件的快照内容,git并不保存具体的修改,而是保存所有经过修改的文件的快照内容,一次提交的文件的索引由一个tree保存,commit对象是每次提交的具体内容。 每个commit都有其父对象的指针(第一个除外),每次新建一个提交对象前git会先计算父对象的校验和,然后将文件目录转换为tree对象,之后的创建的提交对象除了提交内容外

2017-04-25 12:59:13 842

原创 unity射线检测忽略某层的方法

unity中的射线检测方法Physics.Raycast,可以从目标点朝目标方向发射一条无限长或固定长度的射线,此外我们可以设置其与特定层的碰撞:Ray ray = new Ray(Vector3.zero, Vector3.forward);int layerMask = 1 << 10;if (Physics.Raycast(ray, 30.0f, layerMask)){ ...

2017-04-02 22:15:48 22851 2

原创 Unity3D 物理引擎相关设置

在菜单中选择Edit->Project Setting->Physics进入Physics Manager。 其中的重要属性: - Gravity 重力大小,如果勾选了Rigidbody的Use Gravity选项,物理引擎就会按此处数值设置重力。 - Default Material 物体碰撞时的反作用力大小。也可在Rigidbody中分别进行设置。 - Sleep Velocity,

2017-02-22 21:01:10 3585

原创 C++ 排序算法(4)---快速排序

简介快速排序是目前各个排序算法中效率优秀的一种排序方法,其采用的任然是分治法的思想,并且快速排序在实际中也是最为常用的。基本流程首先在数组中取一个值作为基准(可以随便取) 4,3,1,7,3,9,5,6,2将比基准小的都放到基准的左边,比基准大的都放到基准的右边,以此将数组分为两部分 3,1,3,2,4,7,9,5,6分别对两个区间重复以上步骤,直到各区间只有一个数 3,1,3,2,|4

2017-02-12 12:28:49 705

原创 C++ 排序算法(3)---希尔排序

简介希尔排序是插入排序的优化版本,又名缩小增量排序。 基本思想是把数组按一步长(gap)分组,后对每一组进行插入排序,通过缩小步长使每一组的数据增加,当步长为1时,完成对整组数据的排序。 例如现在有一个数组: 6 3 1 9 4 8 2 5 7 0 以步长5来进行排序,将6和8,3和2,1和5。。。。进行排序, 6 2 1 7 0 8 3 5 9 4 在以步长2(5/2)来排序,将{6,

2016-12-09 17:48:00 507

原创 将opencv的Mat转换为qt的QImage

opencv的Mat与qt的QImage之间转换的首要问题在于QImage是rgb排列而Mat是bgr排列,不过好在opencv提供了颜色空间转换的函数cvtColor,通过它可以实现RGB颜色向HSV,HSI等颜色空间的转换,也可以转换为灰度图像(CV_BGR2GRAY)。Mat m;m = imread("F:\\1.png");cvtColor(m,m,CV_BGR2RGB);QImage

2016-12-09 15:23:34 1380

原创 windows下OpenCV的编译与配置过程(Qt)

参考博客http://blog.csdn.net/qiurisuixiang/article/details/8665278/准备工作 (1) OpenCV 下载地址http://opencv.org/ (本文中使用的是opencv-2.4.13,不建议使用最新版) (2) cMake下载地址http://www.cmake.org/cmake/resources/software.html

2016-12-07 16:50:17 1042

原创 Ubuntu系统安装---系统u盘制作

准备一块至少4G内存的U盘(楼主使用的是8G的)Ubuntu系统镜像文件(iso)下载,Ubuntu官网在百度上搜索就可以找到UltraISO软件,同样是百度一搜就有。系统导入U盘打开UltraISO,文件->打开,找到你的系统文件(这一步需要插入U盘) 启动->写入硬盘映像 选择你的U盘,点击快捷启动,设置引导扇区为syslinux,写入方式USB-HDD,点击写入,等待操作完成。 重启

2016-12-04 17:12:53 493

原创 C++与设计模式(14)——职责链模式

职责链模式 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系让我来描述的话就是,现在我们有很多的对象可以处理一个事件,但这个事件的拥有者并不需要认识所有处理它事件的对象,这个时候就需要责任链模式来解决。 比如需要向公司请假,一天的假期只需要向组长申请就可以了,而一周甚至更长的假期则需要上级领导的批准。把这个例子写成代码:class Manager{public:

2016-12-03 19:29:46 535

原创 Qt Graphics View Framework(2)---坐标系

Qt Graphics View坐标系统Graphics View基于笛卡尔坐标系。item在场景中的位置与几何形状通过x,y坐标表示。在Graphics View中有三个有效的坐标系统:视图坐标系,场景坐标系,Item坐标系。视图坐标系视图坐标是widget的坐标,它是相对于widget或是view的,它的视口的左上角总是(0,0),右下角总是(width,height)。 在

2016-12-03 11:17:41 1359

原创 C++ 排序算法(2)---归并

归并排序归并排序作为复杂度O(nlogn)的稳定排序方法在效率上是远超一般排序方法的。合并数组在说归并排序之前我们先考虑一个问题,如何合并两个有序数列并使其结果仍有序? 现在在一数组a中,前一半是递增的,后一半也是递增的,但a整体却不是递增的,那么现在想一个办法,把a的前半段和后半段合并成一个有序数列。 1. 首先从两段中取出最小值进行比较,将较小的一个放入临时数组。 2. 将剩余的部分放入临

2016-12-01 18:24:26 3103

原创 Qt Graphics View Framework(1)---简单使用

简介本次主要涉及一下3个类 1. QGraphicsView:显示图形的窗口。 2. QGraphicsScene:用于绘制的画布,一切的绘制和时间都发生在画布上,QGraphicsView用于展示QGraphicsScene,如果画布大于QGraphicsView的尺寸,窗口会自动创建滚动条。 3. QGraphicsItem:在QGraphicsScene上展示的item。QGraphic

2016-11-30 20:30:53 724

原创 C++ 排序算法(1)---冒泡,选择,插入

今天来写点算法,就当是复习了。 冒泡,选择,插入这三个算法效率都挺一般的,但思想接近,所以放在一起写。冒泡算法运行时间稳定,时间复杂度 O(n^2),非常简单粗暴,当然效率也不高。这里不多讲。void BubbleSort(int a[], int n){ for (int i = 0; i < n; i++) for (int j = 1; j < n - i; j++

2016-11-29 15:23:16 1209

原创 Qt---实现一组可拖动按钮

直接上代码 self-contained.h#ifndef SELFCONTAINED_H#define SELFCONTAINED_H#include <QWidget>#include <QPainter>#include <QTimer>#include <QImage>#include <QMouseEvent>#include <QVector>#endif // SELFC

2016-11-28 21:00:42 7977 9

原创 Qt中对图片中的颜色进行修改

由Qimage的colorTable方法获得图片中全部的颜色,然后找到你要更换的颜色,把颜色的编号交给setColor方法就可以了,具体请看qt的文档。QImage image(":/image//image/contacts.png");QRgb rgb = image.pixel(image.width()/2,image.height()/2);QVector<QRgb> rgbVecto

2016-11-27 19:06:25 14648 6

原创 STL线程 std::thread

这个例子很好理解#include <thread>#include <windows.h>using namespace std;void fun1(){ cout << "fun1:" << GetCurrentThreadId() << endl;}void fun2(int parameter){ cout << "fun2:" << GetCurrentThread

2016-11-24 20:09:52 1552

原创 C++与设计模式(13)——中介者模式

用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互。中介者模式的意义现在在我们的程序中有很多共同工作的类: 假如它们之间互相关联,在这样的情况下,如果要修改B类,那么也会对ACD类产生影响,而对于中介者模式: 可以修改任意一个类而只对中介类产生影响。 这就是中介者模式的意义:将一个复杂的网状的类的结构转换为简单的

2016-11-24 19:54:45 572

原创 Qt使用Eigen矩阵库

安装Eigen矩阵库下载 http://pan.baidu.com/s/1c2DpqCg Eigen官网 http://eigen.tuxfamily.org/index.php?title=Main_Page解压后放在任意文件夹内,然后在qt项目中的pro文件中加上Eigen的目录(如果没有加载成功,重新构筑即可)INCLUDEPATH += D:\......\eigen3添加头文件#incl

2016-11-22 14:16:26 11708 4

原创 Qt---用QPainter画一个3D的正方体

闲的蛋疼 My3DBox .h#include <Eigen/Geometry>using namespace Eigen;#define SQUARE_LENGTH 200//是一个边长200的正方体#define CAMERA_DISTANCE 300//视点距离class My3DBox : public QWidget{ Q_OBJECTpublic: expl

2016-11-22 13:57:15 5903 1

原创 C++与设计模式(12)——备忘录模式

在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态这里以棋子坐标为例,通过ChessMemento来保存ChessMan的信息,并通过ChessCaretaker进行管理来实现悔棋和撤销等操作。class ChessMemento{public: ChessMemento():m_x(0),m_y(0),m_str(""

2016-11-18 19:42:23 554

原创 C++与设计模式(11)——装饰模式

装饰模式动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。 装饰模式注重功能的拓展,增加了类的组合,减少了类之间的继承,而多个装饰类进行排练组合,可以创造出不同行为的组合。//穿衣服的人class People{public: virtual void showClothes() = 0;};class Someone : public People

2016-11-17 14:54:49 396

原创 C++与设计模式(10)——桥接模式

桥接模式 定义:将抽象部分与它的实现部分分离,使它们都可以独立地变化这种说法可能不太好理解,那我们有另一种说法,桥接模式是将复杂变化的多个维度分开,通过组合的形式进行联系。举个例子,现在我们要写一个绘图设备(类),它可以画不同颜色不同形状的图形: 先想一个简单的实现,我们的设备拥有绘制所有这些图形的接口: 我们可以发现这么做的话我们的设备的接口会变得非常之多,难以维护和管理,接口内

2016-11-14 21:00:59 548

原创 Qt 多线程编程

关于多线程的话题这里不过多废话,主要介绍qt多线程的两种用法。QThreadQt主要使用继承QThread重写run函数来完成多线程。 我们写了一个继承自QThread的MyThread,重写了它的run函数,之后创建MyThread对象,并让其start(),run函数就会运行在另一个线程里。 MyThread.h#include <QThread>#include <QDebug>#inc

2016-11-10 23:12:45 610

原创 C++与设计模式(9)——享元模式

享元模式 享元模式(Flyweight Pattern):运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用。由于享元模式要求能够共享的对象必须是细粒度对象,因此它又称为轻量级模式,它是一种对象结构型模式。围棋游戏与享元模式说道享元模式,最经典的例子就是围棋了,我们都知道,围棋中有许多棋子,每个棋子都有它们各自的信息:en

2016-11-09 16:49:55 464

原创 py学习之路11---模块与包

先盗张图_(:зゝ∠)_ http://img.blog.csdn.net/20161108193629491” alt=”模块和包” title=”” />模块py中的模块类似其他语言中的头文件。我们可以把一些主题相关的函数和类放在一个模块里,这为py增加了许多可拓展性。导入一个模块我们先来导入一个模块,最开始py有一个内置的模块sysimport sys我们通过‘.’来访问sys模块里的变量,

2016-11-08 19:35:15 472

原创 C++与设计模式(8)——代理模式

代理模式 为其他对象提供一种代理以控制对这个对象的访问代理模式有这几种分类: 1. 远程代理(Remote Proxy)为一个位于不同的地址空间的对象提供一个本地的代理对象。这个不同的地址空间可以是在同一台主机中,也可是在另一台主机中,远程代理又叫做大使(Ambassador) 2. 虚拟代理(Virtual Proxy)根据需要创建开销很大的对象。如果需要创建一个资源消耗较大的对象,先

2016-11-06 21:42:25 430

原创 w3school SQL教程整理

SELECT:用于从表中选取数据 SELECT 列名称 FROM 表名称DISTINCT:用于返回唯一不同的值 SELECT DISTINCT 列名称 FROM 表名称WHERE:有条件地从表中选取数据 SELECT 列名称 FROM 表名称 WHERE 列 运算符 值AND & OR:在 WHERE 子语句中把两个或多个条件结合起来ORDER BY:

2016-11-06 16:10:55 1718

原创 C++ 最长递增子序列问题

最长递增子序列问题:在一列数中寻找一些数,这些数满足:任意两个数a[i]和a[j],若i动态规划求一序列的最长子序列的长度,那么将问题变为在序列中求以a[k]为终点的最长上升子序列的长度aLen[k],状态转移方程为: aLen[0] = 1 aLen[k] = MAX{aLen[i] ,0 <= i < k且a[i] < a[k]} + 1 因为在a[k]左边结尾小于a[k]的序列的长度的最

2016-11-05 16:05:59 4997

原创 在命令行里运行已经完成的python程序

似乎忘了讲一些非常重要的事。我们写完一个py程序后可以直接在命令行里运行它,不过要在文件开头加上一段代码(windows可以不加)#!/bin/env pythonpy看到这段代码后会去env里寻找解释器的位置。然后在命令行里输入(后面是文件目录,这里我放在桌面上了)python C:\Users\Administrator\Destop\a.py就可以在命令行里运

2016-11-04 17:48:19 5677

原创 C++与设计模式(7)——外观模式

外观模式:为子系统中的一组接口提供一个一致的界面, 外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。简单来说就是当系统非常复杂时,由我们来提供一个简单的接口供用户使用,让用户无需关注其中的实现。class Keys{public: void keyFront(){cout << "→";} void keyBack(){cout << "←";} voi

2016-11-04 10:38:01 398

原创 Qt——仿bilibili直播的调音量控件

.hclass VolumeController : public QWidget{ Q_OBJECTpublic: explicit VolumeController(QWidget *parent = 0); void setMaxValue(int value);protected: int m_maxValue; int m_value;

2016-11-03 20:14:35 2250

原创 C++与设计模式(6)——建造者模式

建造者模式建造者模式主要负责把一个复杂对象的构造与其表现分离,与工厂模式不同,建造者模式是在导向者的控制下一步一步构造产品的。 《大话设计模式》中有一个例子——建造小人,一共需建造6个部分,头部、身体、左右手、左右脚。class Builder { public: virtual void BuildHead() {} virtual void BuildBod

2016-11-01 18:04:27 342

原创 C++与设计模式(5)——原型模式

原型模式看这个模式的第一感觉,这并不是一个高大上的设计模式,而是规范化代码的一个小技巧。原型模式是通过指定实例,通过拷贝来创建新的对象。在C++中,原型模式是通过提供clone接口和重写拷贝构造函数(深拷贝)来实现的。class prototype{public: prototype(){} virtual ~prototype(){} virtual prototype

2016-10-31 11:40:18 477

原创 py学习之路10---类与对象

什么是类与对象1.类目前我们都是基于函数和代码块进行编程的,这被称作面向过程的编程。在小型程序中,我们可以使用过程编程,但在大型程序中,我们就要使用面向对象编程。类就是面向对象编程中的重点,他是一种把数据和功能结合起来的类型,就如同平时使用的数值型(int),浮点型(float)一样,我们可以创建该类型的变量,或者叫对象。2.对象其实在python中任何一条数据都是对象。对象由‘标识’,‘类型’,‘

2016-10-30 12:06:47 452

原创 C++与设计模式(4)——单例模式

单例模式单例模式是指在一个项目中用来创建独一无二的,只能够有一个实例的对象。经典实现class Singleton {public: static Singleton* getInstance(); //析构的时候释放资源~ ~Singleton() { if((singleton != NULL) delete singleton;

2016-10-29 21:35:49 445

原创 C++与设计模式(3)——适配器模式

适配器模式适配器模式指通过把接口转换成用户需要的接口,来让原本由于接口不兼容而不能一起工作的那些类可以一起工作。 举个简单的例子,在STL中实际上只提供了双端队列(deque)的数据结构,而栈(stack)和队列(queue)都是通过适配器模式来转换双端队列(deque)的接口来实现的。class Deque{public: void push_back(int x){} vo

2016-10-29 12:59:00 465 1

原创 QSS --- 360主按钮样式

通过css让这样一张图片显示在按钮上,看起来很简单,但在Qt中background-position只有top bottom left right center五个关键字,所以为了搞定这点还是花了不少时间的。QPushButton { border: 0px; border-radius: 37px; background-image: url(':/file/carL

2016-10-28 14:53:28 1128

原创 C++与设计模式(2)--策略模式

策略模式策略模式是指提供接口,让用户使用可替换的算法。enum ALG {first, second, third}; //标签 //抽象接口 class Algorithm { public: virtual void alg() = 0; }; //三种具体的替换算法 class Algorithm1 : public Algorithm { pu

2016-10-27 22:11:54 474

原创 C++与设计模式(1)--工厂模式

前言在说设计模式之前先声明很重要的一点 不要滥用设计模式工厂模式工厂模式主要特点是需要在工厂类中做判断,从而创造相应的产品。作为创建型模式,大致可以分为三类,简单工厂模式、工厂方法模式、抽象工厂模式。简单工厂模式举个例子,一家汽车公司生产两种型号的汽车:A型车和B型车,现在公司只有一个工厂来生产汽车,公司直接告诉工厂要生产哪种汽车:enum TYPE{CARA,CARB};//汽车类class

2016-10-27 15:48:28 443

空空如也

空空如也

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

TA关注的人

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