demi的博客

关于Cocos2d-x中的scheduleUpdate和update方法的使用

一、如果要让某类实例对象要连续执行某些语句(比如让每个Block实例从运行框最右边移动到最左边)

要在Block类中增加一些东西

1. 先在其.cpp文件的init()函数中执行scheduleUpdate()方法。

2. 然后在.h中声明一个虚拟的函数update,并在.cpp文件中定义update,当init中执行scheduleUpdate()时,会不断地调用update函数,里面的语句也不断地被执行,直到执行unscheduleUpdate()时停止调用update()函数,unscheduleUpdate()语句一般放在update函数中,当满足某个条件时就执行。

二、如果要不断地创建某个类的实例对象(比如不断地创建新的Block在最右边),可以用到嵌套的update方法

要在GameController类中增加一些东西

1. 先在HelloWorld类的.cpp文件的init()函数中执行scheduleUpdate()方法。

总结 | 八类软件开发方法!

在上个世纪60年代中期爆发了众所周知的软件危机。为了克服这一危机,在1968、1969年连续召开的两次著名的NATO会议上提出了软件工程这一术语,并在以后不断发展、完善。与此同时,软件研究人员也在不断探索新的软件开发方法。至今已形成了八类软件开发方法。

Parnas方法

最早的软件开发方法是由D.Parnas在1972年提出的。由于当时软件在可维护性和可靠性方面存在着严重问题,因此Parnas提出的方法是针对这两个问题的。首先,Parnas提出了信息隐蔽原则:在概要设计时列出将来可能发生变化的因素,并在模块划分时将这些因素放到个别模块的内部。这样,在将来由于这些因素变化而需修改软件时,只需修改这些个别的模块,其它模块不受影响。信息隐蔽技术不仅提高了软件的可维护性,而且也避免了错误的蔓延,改善了软件的可靠性。现在信息隐蔽原则已成为软件工程学中的一条重要原则。

OpenGL学习——颜色的选择

OpenGL支持两种颜色模式:一种是RGBA,一种是颜色索引模式。

无论哪种颜色模式,计算机都必须为每一个像素保存一些数据。不同的是,RGBA模式中,数据直接就代表了颜色;而颜色索引模式中,数据代表的是一个索引,要得到真正的颜色,还必须去查索引表。

1. RGBA颜色

RGBA模式中,每一个像素会保存以下数据:R值(红色分量)、G值(绿色分量)、B值(蓝色分量)和A值(alpha分量)。其中红、绿、蓝三种颜色相组合,就可以得到我们所需要的各种颜色,而alpha不直接影响颜色,它将留待以后介绍。

在RGBA模式下选择颜色是十分简单的事情,只需要一个函数就可以搞定。

glColor*系列函数可以用于设置颜色,其中三个参数的版本可以指定R、G、B的值,而A值采用默认;四个参数的版本可以分别指定R、G、B、A的值。例如:

void glColor3f(GLfloat red, GLfloat green, GLfloat blue);
void glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);

扒一扒自动驾驶车辆激光雷达的部件功能

据外媒报道,自动驾驶车辆配置的多款摄像头,旨在用该设备探查道路上的障碍物并绘制车辆周边环境。在各类传感器中,在功能方面,激光雷达传感器与人眼最为接近,其光探测和测距系统(detection and ranging system)与雷达类似,但其采用了光波替代了无线电波(radio waves)。

激光雷达系统利用激光脉冲信号“照亮(illuminate)”目标区域,并计算反射信号返回接收器的用时。该类系统由光源、光电探测器、数据处理电子器件及运动控制设备。

自动驾驶车辆大体采用了两类激光雷达设备,其分类依据为扫描车辆周边环境时所采用的方式,其中:1、3D闪光式激光雷达(3D flash LiDAR)由宽视角源及广视角光学件构成,旨在聚焦探查设备一次曝光(one exposure)上的所有反射光。2、扫描式激光雷达系统可向各个方向发射激光,逐个探查回响(echoes)以便绘制车辆周边环境。

图像处理算法——图像常用操作

图像处理基本算法操作从处理对象的多少可以有如下划分:
1. 点运算:处理点单元信息的运算
2. 群运算:处理群单元 (若干个相邻点的集合)的运算

表1 图像处理操作按处理对象数量分类表格

图像处理算法——图像常用操作

下图是一副普通的吉普车图像和我们生活中见到的并没有什么两样,但是在计算机看来则是另外一副“模样”了。图像中黄色部分则是几部车图像倒车镜的局部图像在计算机中的形态。

图像处理算法——图像常用操作
图1 计算机图像的真实表现形态

以上图为例说明几种重要的点运算和群运算。

改变世界的十位算法大师

算法是整个计算机科学的基石,是计算机处理信息的本质。 从开创算法分析这一领域的高德纳、Amazon的“首席算法官”乌迪·曼伯尔,到发明快速排序算法托尼.霍尔,本文介绍了对AI、以及整个计算领域影响深远的十位算法大师。

Don E.Knuth 高德纳

【Unity编程】Unity中关于四元数的API详解

Quaternion类

Quaternion(四元数)用于计算Unity旋转。它们计算紧凑高效,不受万向节锁的困扰,并且可以很方便快速地进行球面插值。 Unity内部使用四元数来表示所有的旋转。

Quaternion是基于复数,并不容易直观地理解。 不过你几乎不需要访问或修改单个四元数参数(x,y,z,w); 大多数情况下,你只需要获取和使用现有的旋转(例如来自“Transform”),或者用四元数来构造新的旋转(例如,在两次旋转之间平滑插入)。

大部分情况下,你可能会使用到这些函数:
  •  Quaternion.LookRotation,
  •  Quaternion.Angle
  •  Quaternion.Euler
  •  Quaternion.Slerp
  •  Quaternion.FromToRotation
  •  Quaternion.identity。

Quaternion 是一个结构体,本身成员变量相对简单,可以作为函数参数高效传递。-

一文读懂区块链技术六大核心算法

近日,在加密货币经历“混乱时期”后,区块链再次火爆起来,受到了各方的极大关注与重视,成为资本市场和各领域关注的焦点,就连朋友圈中的探讨和分享也让人目不暇接。那么,区块链到底是个什么鬼?区块链的核心算法又有哪些?

区块链核心算法一:拜占庭协定

拜占庭的故事大概是这么说的:拜占庭帝国拥有巨大的财富,周围10个邻邦垂诞已久,但拜占庭高墙耸立,固若金汤,没有一个单独的邻邦能够成功入侵。任何单个邻邦入侵的都会失败,同时也有可能自身被其他9个邻邦入侵。拜占庭帝国防御能力如此之强,至少要有十个邻邦中的一半以上同时进攻,才有可能攻破。然而,如果其中的一个或者几个邻邦本身答应好一起进攻,但实际过程出现背叛,那么入侵者可能都会被歼灭。于是每一方都小心行事,不敢轻易相信邻国。这就是拜占庭将军问题。

在这个分布式网络里:每个将军都有一份实时与其他将军同步的消息账本。账本里有每个将军的签名都是可以验证身份的。如果有哪些消息不一致,可以知道消息不一致的是哪些将军。尽管有消息不一致的,只要超过半数同意进攻,少数服从多数,共识达成。

【深度学习】L1正则化和L2正则化

在机器学习中,我们非常关心模型的预测能力,即模型在新数据上的表现,而不希望过拟合现象的的发生,我们通常使用正则化(regularization)技术来防止过拟合情况。正则化是机器学习中通过显式的控制模型复杂度来避免模型过拟合、确保泛化能力的一种有效方式。如果将模型原始的假设空间比作“天空”,那么天空飞翔的“鸟”就是模型可能收敛到的一个个最优解。在施加了模型正则化后,就好比将原假设空间(“天空”)缩小到一定的空间范围(“笼子”),这样一来,可能得到的最优解能搜索的假设空间也变得相对有限。有限空间自然对应复杂度不太高的模型,也自然对应了有限的模型表达能力。这就是“正则化有效防止模型过拟合的”一种直观解析。

【深度学习】L1正则化和L2正则化

L2正则化

智能门锁行业发展迅猛 依然存在诸多隐患

近两年,智能家居产品一反以往“不瘟不火”的状态,正在呈现快速发展的态势,首先受益于互联网信息技术的发展,产品呈现更多样化,更易于操作,体验性越来越好。另外伴随着互联网的发展而成长的80后90后,已逐渐成为主流的消费人群,他们面临不同生活场景,在家居、出行、医疗等方方面面,更倾向于使用智能化产品。

同时物联网技术打破了“信息孤岛”效应,智能硬件从单品爆发向万物互联模式发展,智能家居系统逐渐完善。另外,宏观利好因素正促进中国智能家居行业的快速发展及渗透。易观对2017年中国智能家居产业进行PEST分析:

2016年,中国智能家居市场规模达到1140亿,2017年达到1404亿,同比增加23.2%,预计到2019年将突破1950亿元人民币。

智能门锁一骑绝尘

在智能家居中,尤其以智能门锁为代表的产品发展尤为迅猛。随着用户消费观念转变与传统安防产品的漏洞,用户对于智能安防产品的需求不断提升,智能安防成为用户刚需,安防产品直接影响用户的安全感。其中以电子密码锁、指纹锁的高安全性能逐渐受到用户关注,智能锁市场呈现出爆发的态势。