自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

辣条不爱辣的博客

阳春白雪的经典虽然是经典,大众却不见得喜欢

  • 博客(251)
  • 资源 (3)
  • 收藏
  • 关注

原创 标准光照模型-半兰伯特模型

Valve公司在《半条命》中提出了一种技术,叫做半兰伯特光照模型 通过这个方式,可以把点积的结果从[-1,1]到[0,1]范围内,也就是说,对于模型的背光面,从原模型中点积结果会映射到同一个值,即0处;而在半兰伯特模型中,背光面也可以有明暗变化,不同的点积结果会映射到不同的值上。// Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'// Upg...

2021-08-18 19:27:15 819

原创 标准光照模型-逐像素漫反射

由于逐顶点光照依赖于线性插值来得到像素光照,因此,当光照模型中有非线性的计算,逐顶点光照会出现问题。 由于逐顶点光照会在渲染图元内部对顶点颜色进行插值,这会导致渲染图元内部的颜色总是暗于顶点处的最高颜色值,这在某些情况下会有明显的棱角现象。 逐像素中,我们以每个像素为基础,得到他的法线,然后进行光照模型的计算。效果:// Upgrade NOTE: replaced '_World2Object' with 'unity_Wo...

2021-08-18 19:14:09 263

原创 标准光照模型-逐顶点漫反射

Shader即着色器,是渲染流水线中的一个环节,这个系列来简单的学习下Shader。 渲染包含了两大部分,决定一个像素的可见性,决定这个像素的光照计算,光照模型就是用于决定在一个像素上进行怎样的光照计算。 漫反射光照用于对那些被物体表面随机散射到各个方向的辐射度进行建模的,在漫反射中,视角的位置是不重要的,因为反射的是完全随机的,因此可以认为在任何反射方向上的分布都是一样的,但是,入射光线的角度很重要。 漫反射光照符合兰伯特定律,反射光线的强度与表面法线和光源方向之间夹角的余弦成正比。...

2021-08-18 19:04:43 272

原创 加权随机算法

加权平均算法一般应用于某个场景,有一个集合S,里面有A,B,C,D这四项。这时我们想随机从中抽取一项,但是抽取的概率不同。比如我们希望抽到A的概率是50%,抽到B和C的概率是20%,D的概率是10%。一般来说,我们可以给各项附一个权重,抽取的概率正比于这个权重。那么上述集合就成了{A:5, B:2, C:2, D:1}方法一:扩展这个集合,使每一项出现的次数与其权重正相关。在上述例子上述集合扩展成:{A,A,A,A,A,B,B,C,C,D}然后就可以用均匀随机算法从中选取。好处:选取

2020-11-04 17:54:37 2514

原创 大学生社团人员管理数据库系统开发

本篇文章实现了一个简易的数据库管理系统,水平有限,没有用户界面。。开发环境为SQL Server 2008. 1  需求分析系统描述:本题目主要功能是实现学校社团的信息化管理。本系统设计要求随着大学生校园文化的不断丰富,各种学生社团应运而生,对所有学生社团进行统一管理。2功能描述:         学生信息存储 学号,姓名,性别,班级 权限等         社团信息存...

2019-01-28 13:23:53 15136 5

原创 Socket编程-基于UDP的回声客户端

UDP不像TCP,无需在连接状态下交换数据,因此基于UDP的服务器端和客户端无需建立连接过程。也就是说,无需调用listen()函数和accept()函数。UDP中只有创建套接字的过程和数据交换的过程。运行结果:源代码:服务器端:#include <stdio.h>#include <WinSock2.h>#pragma comment(lib,...

2018-12-29 20:31:09 375 1

原创 Socket编程-文件传输功能的实现

学习一下用socket进行文件传输,从服务器下载文件。运行结果(客户端):成功从服务器下载MV“起风了 ” 。源代码:服务器端:#include <stdio.h>#include <WinSock2.h>#pragma comment(lib, "ws2_32.lib") //加载 ws2_32.dllconst int BUF...

2018-12-29 13:03:25 1069 1

原创 Socket编程-TCP的粘包问题以及数据的无边界性

数据的粘包问题,客户端发送的多个数据包被当做一个数据包接收。也称数据的无边界性,read()/recv() 函数不知道数据包的开始或结束标志(实际上也没有任何开始或结束标志),只把它们当做连续的数据流来处理。运行结果:源代码:服务器端:#include <stdio.h>#include <WinSock2.h>#include <Windo...

2018-12-28 19:34:54 301

原创 Socket编程-实现迭代服务器端和客户端

前面的程序,不管是客户端还是服务器端,就是处理完一个请求就立即退出了,没有太大的实际意义。能不能像Web服务器那样一直接收客户端的请求呢?使用while循环即可。修改前面的程序,使得服务器端可以不断的相应客户端的请求。运行结果(客户端):源代码:服务器端:#include <stdio.h>#include <WinSock2.h>#prag...

2018-12-28 18:41:40 502

原创 Socket编程-回声客户端

所谓回声,是指客户端向服务器发送一条数据,服务器再原样返回给客户端,就像声音一样,遇到障碍物会反弹回来。运行结果(客户端):源代码:服务器端:#include <stdio.h>#include <WinSock2.h>#pragma comment(lib, "ws2_32.lib") //加载 ws2_32.dllconst int ...

2018-12-28 14:28:53 444

原创 Socket编程-服务器向客户端发送数据

最近想学习一下底层的socket编程的东西,了解一下具体的原理,而不只是使用封装好的类库。从C语言中文网教程上学习的,记录一下吧。使用vs2010为开发环境,可能由于缺少库的原因?codeblocks没法使用.服务器向客户端发送数据:Hello World!运行结果:客户端:源代码:服务器端:#include <stdio.h>#include &l...

2018-12-28 13:38:28 6991

原创 设计模式-访问者模式

男人成功时,背后多半有一个伟大女人。女人成功时,背后大多有一个不成功的男人。男人失败时,闷头喝酒,谁也不用劝,女人失败时,眼泪汪汪,谁也劝不了。男人恋爱时,凡事不懂也要装懂。女人恋爱时,遇事懂也要装作不懂。男人结婚时,感慨道:恋爱游戏终结时,'有妻徒刑'遥无期。女人结婚时,欣慰曰:爱情长跑路漫漫,婚姻保险保平安。网上关于男人与女人区别的讨论,还有点意思。我们就用这个来学习最复杂的一...

2018-12-21 16:04:36 168

原创 设计模式-解释器模式

这篇文章来学习一下解释器模式,然后实现一个音乐解释器的例子。解释器其实就是用来翻译文法句子的。解释器模式:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言的句子,这样就可以构建一个解释器。该解释器通过解释这些句子来解决该问题。比方说正则表达式,我...

2018-12-21 14:40:22 169

原创 设计模式-享元模式

一个人给一家企业做网站,然后他的好多朋友也希望做这样的网站,但要求不太一样,有的人希望是新闻发布形式的,有人希望是博客形式,而且都希望在费用上大大降低,可是每个网站租用一个空间,费用上降低也是不太可能的,怎么办呢?如果100家企业来做网站,就必须申请100个空间,用100个数据库有,用类似的代码复制100遍,如果有bug或新的需求改动,维护量就太可怕了。如果大家的网站共用一套代码,就好了。...

2018-12-21 12:26:55 157

原创 设计模式-中介者模式

最近伊拉克又接连发起了多起爆炸事件,战争带给人类的真是无法弥补的伤痛。由于各国之间代表的利益不同,所以矛盾冲突是难免的,但如果有这么一个组织,由各国的代表组成,用来维护国际和平与安全,解决国际间经济、社会、文化和人道主义性质的问题,不就很好么?这个组织就是联合国组织,它就是一个调停者、中介者的角色。国与国之间的关系,就类似于不同的对象与对象之间的关系,这就要求对象之间需要直到其他所有对...

2018-12-20 18:37:37 201

原创 设计模式-职责链模式

一个人在公司干满三个月了,马上要办转正手续,要求加薪。于是他向经理提了出来。经理也觉得他的工作很认真,能力很强。但是加薪他做不了主,于是他找了人力资源总监。总监说他也做不了主,毕竟刚毕业的大学生加薪的先例没有。但总监说登总经理回来向总经理提一下。但是总经理却不同意加薪,说大学生这么多,随便都能找得到,三个月就想加薪,不合适。我们把向经理申请,经理没权利,然后向总监上报,总监也没权限,向总经...

2018-12-20 15:24:25 377

原创 设计模式-命令模式

去小摊上吃羊肉串和去店里吃感觉是不一样的。小摊上如果人太多的话,老板容易分不清楚谁是谁,造成分发错误,收钱错误,烤肉质量不过关等。但是在店里,有服务员记录好菜单,然后直接给烤肉的人制作就可以了,修改也不难,可以说是很方便了。小摊上客户与烤羊肉老板的紧耦合使得容易出错,容易混乱,容易挑剔。这其实就是行为请求者与行为实现者的紧耦合。所以对请求排队或记录请求日志,以及支持可撤销的操作时,紧耦合是不好...

2018-12-20 11:21:41 152

原创 设计模式-桥接模式

玩手机游戏的时候我们可能会发现,不同手机品牌的手机也许是不能安装同一款游戏的。也就是说,各大手机厂商都发展自己的软件部门开发手机软件,哪怕是同一品牌的手机,不同型号的也完全有可能软件不兼容。先写一个用N品牌手机和M品牌手机玩游戏的程序,我们可以很简单的写完。再加通讯录功能也不难,再加几个类就行了。但是如果再加新的品牌和功能,我们就会发现,所需的类越来越多,已经控制不了。很多情况下继承会...

2018-12-19 20:01:32 204 2

原创 设计模式-单例模式

这也算是我所学习的第一个设计模式把,因为它最简单。但是仔细学一下就会发现,也不是很简单的,因为需要考虑很多问题。写一个MDI窗口程序,当中有一个工具箱的窗体,希望工具箱要么不出现,要么出现一个,怎么做到呢?可以用是否为null来判断,别忘了还有disposed的判断。如果有多处的话要写成函数。但是,这样的话把是否实例化都写到Form中了,而Form里应该只是通知启动工具箱,至于工具箱窗...

2018-12-19 16:50:06 135

原创 设计模式-迭代器模式

在上公交的时候,售票员会让每个乘客都买票。这个售票员其实就是在做一件重要的事,把车厢里所有人都遍历了一遍,不放过一个不买票的乘客。迭代器模式,提供一种方法顺序访问一个聚合对象中各个元素,而又不爆率该对象的内部表示。当你需要访问一个聚集对象,而且不管这些对象是什么都需要遍历的时候,你就应该考虑用迭代器模式,你需要对聚集有多种方式遍历时,可以考虑用迭代器模式。为遍历不同的聚集结构提供如开始,下...

2018-12-19 15:03:28 128

原创 设计模式-组合模式

有一家公司最近接了一个项目,是为一家在全国许多城市都有分销机构的大公司做办公管理系统,总部有人力资源、财务、运营等部门。现在有个问题,总公司的人力资源部,财务部等办公管理功能在所有的分公司或办事处都需要有,而且总部,分部和办事处是成树状结构的,也是有组织结构的,不可以简单的平行管理。类似的这种部分与整体情况很多见,分公司或办事处与总公司的关系,就是部分与整体的关系,就是整体与部分可以被一致...

2018-12-19 10:22:50 281 3

原创 设计模式-备忘录模式

曾经有一个精彩的游戏摆在我面前,但是我没有好好珍惜。等到死于Boss手下的时候才后悔莫及,尘世间最痛苦的事莫过于此。如果上天可以给我一个机会再来一次的话,我会对你说三个字,“存进度”,如果非要把这个进度加上一保险,我希望是刻成光盘,流传万年!在一些单机PC游戏中,我们可能有这样的感受,打Boss前没存档,死了后就后悔了。这种存档是怎么实现的呢?通常是保存到磁盘上了。我们可以写一下这个功能。...

2018-12-18 19:19:55 139

原创 设计模式-适配者模式

在几年前,有记者问姚明说:在CBA和NBA的最大的区别是什么?姚明的答案是'NBA我需要翻译,而在CBA我不需要。'经过四年的NBA锤炼,他的确是在NBA成长了。不但球技大涨,英语也学得非常棒,用英文答记者问一点问题都没有,不得不令人佩服啊。姚明刚去美国时,怎么打球呢?什么都听不懂。之前专门为他配备了翻译的,那个翻译一直在姚明身边,特别是比赛场上,教练、队员与他的对话全部是通过翻译来沟通。...

2018-12-18 16:57:06 208

原创 设计模式-状态模式

加班在互联网公司似乎是家常便饭。工作的时候,上午状态好,中午想睡觉,下午渐恢复,加班苦煎熬。这其实是一种状态的变化。不同的时间,会有不同的变化,用代码来实现这个例子。我们可以很简单的写出用一个类来表示,一个方法,用过if else语句来判断钟点,根据不同的钟点来做不同的事情。但是这个方法很长。面向对象设计其实就是希望能够做到代码的责任分解。这个方法有很多的判断分支,说明他的责任过大了。...

2018-12-18 14:50:14 133

原创 设计模式-抽象工厂模式

一个人给一家企业做电子商务网站,使用SQL Server作为数据库的。然后,公司接到另外一家公司类似需求的项目,但这家公司想省钱,租用了一个空间,只能用Access,不能用SQL Server,于是要改造原来这个项目的代码。那是相当的麻烦啊,以后要加班到11点了...怎么办呢?可以用以前学习的工厂模式。工厂方法模式是定义一个用于创建对象的接口,让子类决定实例化哪一个类。由于多态的关系,...

2018-12-16 18:19:30 146

原创 设计模式-观察者模式

学习这个模式的时候,我不由自主的想起了高中数学老师,在办公室看NBA被当场抓获的情形.......通过例子来学习一下。最近项目计划排的紧,是比较忙的,而最近的股市又特别的火,所以很多人偷偷的通过网页看行情。老板时常会出门办事,于是大家就可以放松一些,看看行情,几个人聊聊买卖股票的心得什么的,但是一不小心,老板就会回来,让老板看到工作当中做这些总是不太好,怎么办呢?公司的有前台秘书,因为平时...

2018-12-15 18:28:35 145

原创 设计模式-建造者模式

去中餐馆吃饭的时候,我们有时候会遇到一些问题:炒饭鸡蛋太少、菜盐放多了.....但是当我们吃肯德基麦当劳的时候,却很少有这样的事情,这也是它们为什么不过百年的洋快餐在千年饮食文化的中国发展的这么好的原因之一。在中国,鱼香肉丝可谓是到处都有,但是味道却千差万别。由于厨师不同,学习厨艺方法不同,有是科班的,有是师傅带徒弟,有人是照书下料,有是自我原创....但是,肯德基的话就不一样了。它的味道是由...

2018-12-14 19:27:53 143

原创 设计模式-外观模式

股民,特别是新股民在没有了解证券知识的情况下去做股票,是很容易亏钱的,毕竟,需要学习的知识实在是太多了,不具备这些知识就很难做好,再有就是心态也很重要,刚开始接触股票的人一般都盼涨怕跌,于是心态很不稳定,这反而做不好股票。但是,我们可以用基金来帮助我们。它将投资者分散的资金集中起来,交由专业的经理人进行管理,投资于股票、债券、外汇等领域,而基金投资的收益归投资者持有,管理机构收取一定比例的托管...

2018-12-14 13:26:15 114

原创 设计模式-迪米特法则

一个人去公司上班,让他到IT部找小张领电脑,但是小张临时出去了没法办,找IT部的小李,小李却说不是它的工作。于是只能等着小张回来处理。这就反映了管理上的一些问题。有好的解决办法是什么呢?就是不管认不认识IT部的人,只要电话或亲自找到IT部,它们都应该想办法帮我解决问题。在设计模式中的话,其实道理是一样的。IT部代表是抽象类或接口,小张小李代表是具体类,之前你在分析会修电脑不会修收音机里讲的...

2018-12-13 16:52:14 114

原创 设计模式-模板方法模式

小时候,数学老师的随堂测验,都是在黑板上抄题目,要我们先抄题目,然后再做答案,偶尔会把题目抄错,那就意味着做的再好,也不会正确了。我们来写一个抄题目的程序。我们可以甲乙同学的试卷都为一个类,类中有题目与答案。这两个类很相似,除了答案不一样,没什么不一样。这样写极容易错,又难以维护。如果老师突然要改题目,两个人都需要该代码,如果某人抄错了,真是很糟糕了。其实老师出一份试卷,打印多份,让学...

2018-12-13 13:25:52 82

原创 设计模式-原型模式

现在找工作求职,简历都是需要复印的。而对于编程来说,简单的复制粘贴极有可能造成重复代码的灾难。我们要求有一个简历类,必须要有姓名,可以设置性别和年龄,可以设置工作经历。最终需要三份简历。最容易的做法,写完类后直接 实例化三次类就行了。但是这样做的话会很麻烦,如果要二十份,我们需要二十次实例化。并且如果写错一个字,比如98年改成99年,就需要改二十次。原型模式:用原型实例指定创建对象...

2018-12-12 19:36:55 150

原创 设计模式-工厂方法模式

工厂模式与简单工厂模式听起来差不多。之前我们用简单工厂模式实现了一个简单的计算器。如果用工厂模式来写这个计算器,我们怎么做呢?using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Factory{ //运算类 public clas...

2018-12-12 13:56:50 116

原创 设计模式-代理模式

电视剧武林外传中有这么一段:郭芙蓉对吕秀才恶狠狠的说:“吕秀才,是你让小六向我求婚的吧?”“ 造化弄人!"吕秀才惨惨的答道,”这只是一个玩笑。“ ”哦!...玩笑!“ 郭芙蓉冷笑的说,”我杀了你!“秀才速奔出去,郭芙蓉口中叫着”你给我站住!“,跟着跑了出去.....这里其实就是一种设计模式的体现:代理模式,剧中秀才让小六代其求婚,是小六代理秀才。代理模式:为其他对象提供一种代理以控制对这个...

2018-12-12 10:16:46 116

原创 设计模式-装饰模式

我们平时在穿衣服的时候有多种搭配方式,得到的形象与风格是不一样的。如果我们要设计给人搭配不同的服饰的系统,比如类似QQ、网络游戏或论坛都有的Avatar系统,怎么做呢?我们可以在一个Person类中写所有的服饰的方法,这样是不符合开放封闭原则的。我们学过了开放-封闭原则了,可以写一个Person类,服饰类,各个服饰子类,然后有新的功能来到直接增加子类就可以了。但是这么做问题也是有的...

2018-12-11 20:18:09 102

原创 设计模式-依赖倒转原则

在我们进行电脑的维修时,如果哪一部分出了问题,我们只需要更换这一个部分就可以了,比如内存出了问题,我们只需要更换内存,不需要更换主板。由于PC易插拔的方式,那么不管哪一个出问题,都可以在不影响别的部件的前提下修改或替换。在PC电脑里叫易插拔,面向对象里把这种关系叫做强内聚,松耦合。比如CPU,只要把接口定义好,内部再复杂也不让外界知道,而主板只需要预留与CPU针脚的插槽就可以了。依赖倒转原...

2018-12-04 10:32:42 254

原创 设计模式-单一职责模式

单一职责模式并不难懂,我们用一个例子来学习一下。设计一个手机上的俄罗斯方块的游戏,比如用WinForm开发的话,我们需要:首先建立一个窗体Form,然后加一个用于游戏框的控件,比如Panel,一个按钮来控制开始,最后放一个Timer控件用于分时动画的编程。写代码当然是编写Timer_Tick事件来绘出和擦除方块,并作出堆积和消层的判断。再编写控件的键盘事件,按了左箭头则左移,右箭头则右移等...

2018-12-03 15:16:51 255

原创 设计模式-策略模式

我们通过设计一个商场收费程序来学习一下策略模式。营业员根据客户所购买商品的单价和数量,向客户收费。还有不同的活动有不同的打折策略,还有满300返100的促销方法等。我们可以用简单工厂模式来做,但是这个模式只是解决对象的创建问题,而且由于工厂本身包括了所有的收费方式。商场是可能经常性更改打折额度与返利额度,每次维护或扩展收费方式都要改动这个工厂,以致代码需重新编译部署,这真的是糟糕的处理方式...

2018-12-03 14:45:35 131

原创 设计模式-简单工厂模式

设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。今天学习一个简单的设计模式:简单工厂模式。用这个模式来实现一个简单的计算器。可以实现加减乘除4则运算。一看这个问题,我们发现...

2018-12-03 10:16:31 198

原创 Socket编程-UDP实现发送组播信息

在System.net.Sockets名称空间中,UdpClient类简化了UDP套接字编程。UDP协议是无连接的协议,因此,UDP协议只有UdpClient类,而没有TcpListener类和TcpClient类。UdpClient类提供了发送和接受无连接的UDP数据报的方便方法。其建立默认远程主机的方式有两种:一是使用远程主机名和端口号作为参数创建UdpClient类的实例;另一种是先创建不带...

2018-12-02 19:39:48 7915 1

原创 Socket编程-TCP实现简单聊天程序

在System.net.Sockets的命名空间中,TcpListener类与TcpClient类是两个专门用于TCP协议编程的类,它们封装了底层的套接字并分别提供了用Socket进行同步和异步通信的方法,降低了TCP应用编程的难度。在网络应用编程中,利用TCP协议编写的程序非常多,例如网络游戏,网络办公,股票交易,网络通信等。1、TcpListener类监听器,用于监听和接受传入的连...

2018-12-02 15:50:18 7355 1

飞机大战-Win32程序开发

运行环境:vs2010 游戏多个关卡,多个boss,多种道具,可玩行还可以吧。跟之前的差不太多。 此游戏为飞机大战,胜利条件为玩家消灭最终boss,失败条件为玩家被消灭。 游戏玩法: 开始界面:点击鼠标进入普通模式,按下空格键进入无敌模式,按下Esc键退出游戏。 游戏界面:玩家鼠标控制飞机的移动与射击,A键发射激光,S键使用防护罩,按下Esc键退出游戏,P键暂停。 --------------------- 作者:辣条不爱辣 来源:CSDN 原文:https://blog.csdn.net/baidu_38304645/article/details/82836535 版权声明:本文为博主原创文章,转载请附上博文链接!

2018-12-25

基于MFC实现游戏-飞机大战

用MFC做了一个飞机大战的游戏,游戏的基本要素都有了。有多个关卡,还有道具,每个关卡都有最终boss,还有无敌模式等。 --------------------- 本文来自 辣条不爱辣 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/baidu_38304645/article/details/82824001?utm_source=copy

2018-09-23

MFC实现简易绘图软件

使用MFC实现简易的绘图软件,基本上是使用鼠标拖动来绘制的图形,有直线,连续直线,矩形,圆,模拟曲线,多边形,圆弧 --------------------- 本文来自 辣条不爱辣 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/baidu_38304645/article/details/82821730?utm_source=copy

2018-09-23

空空如也

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

TA关注的人

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