2014年1月15日
摘要: CSDN编程挑战里的题目一个三角形必然存在它的内切圆与外接圆,求他们的面积比。考虑到精度问题,我们输出面积比*1000的整数部分(直接下取整)。输入数据是一个三角形的三个顶点,但这三个顶点在三维空间中,所以输入是9个整数,分别表示三个顶点(x1,y1,z1) (x2,y2,z2) (x3,y3,z3),保证三点不共线,每个整数在-1000,+1000范围内。输出内接圆与外切圆的面积比*1000的整数部分。这题好搞,图形学我是专业的. 1 #include 2 #include 3 #include 4 #include 5 6 // 内切圆半径 7 // 内切圆半径r=2S/(a+b... 阅读全文
posted @ 2014-01-15 12:01 叶飞影 阅读(3053) 评论(0) 推荐(0) 编辑
摘要: CSDN编程挑战里的题目完成函数reverse,要求实现把给定的一个整数取其相反数的功能,举两个例子如下: x = 123, return 321 x = -123, return -321 这个题容易,一击命中. 1 #include 2 #include 3 #include 4 5 int IntegerReverse(int i) 6 { 7 bool negative = false; 8 if (i = 0; i--)25 {26 rst += numList[i]*n;27 n *= 10;28 }29 30... 阅读全文
posted @ 2014-01-15 11:57 叶飞影 阅读(475) 评论(0) 推荐(1) 编辑
摘要: CSDN编程挑战里的题目24点游戏是一种使用扑克牌来进行的益智类游戏,游戏内容是:从一副扑克牌中抽去大小王剩下52张,任意抽取4张牌,把牌面上的数(A代表1)运用加、减、乘、除和括号进行运算得出24。每张牌都必须使用一次,但不能重复使用。 有些组合有不同种算法,例如要用2,4,6,12四张牌组合成24点,可以有如下几种组合方法: 2 + 4 + 6 + 12 = 24 4 × 6 ÷ 2 + 12 = 24 12 ÷ 4 × (6 + 2) = 24 当然,也有些组合算不出24,如1、1、1、1 和 6、7、8、8等组合.我的思路是穷举法,将四个数的所有 阅读全文
posted @ 2014-01-15 11:53 叶飞影 阅读(4639) 评论(64) 推荐(1) 编辑
摘要: CSDN编程挑战里的题目在二十进制中,我们除了使用数字0-9以外,还使用字母a-j(表示10-19),给定两个二十进制整数,求它们的和。 输入是两个二十进制整数,且都大于0,不超过100位; 输出是它们的和(二十进制),且不包含首0。我们用字符串来表示二十进制整数。可惜我提交了6次才正确,我想要确保有抽奖的可能,需要申请两个帐号,一个做炮灰,另一个一击命中. 1 #include 2 #include 3 #include 4 5 static int GetNum(char c) 6 { 7 if (c >= '0' && c = 'a' 阅读全文
posted @ 2014-01-15 11:49 叶飞影 阅读(737) 评论(0) 推荐(0) 编辑
  2014年1月13日
摘要: // 将整数转化为一个任意进制的字符串 static void int_to_string(int value, char* szDest, int type = 10) { bool negative = false; if (value = 0; i--) { szDest[pos] = szTmp[i]; pos++; } szDest[pos] = 0; } static int GetNum(char c) { if (... 阅读全文
posted @ 2014-01-13 13:41 叶飞影 阅读(1634) 评论(1) 推荐(1) 编辑
  2014年1月10日
摘要: 数学表达式解析工具 数学表达式解析就是写程序计算出一套数学表达式的结果.诸如:a+b*c / (d -d)之类的公式.这牵扯到一些编译原理的东西.代码写起来有点麻烦,但只要耐心点总能搞定的.工具使用很简单,输入数学表达式的字符串,可以设置x, y, z三个参数值,按运算按钮或回车键,输出运算结果.下载地址:http://files.cnblogs.com/WhyEngine/MathExpression.7z(1)标准运算符支持+,-,*,/,%,^这6种标准运算符,其中:%为求余运算, a%b 相当于 mod(a, b); ^为求幂运算, a^b 相当于 pow(a, b);(2)括号标.. 阅读全文
posted @ 2014-01-10 12:05 叶飞影 阅读(4085) 评论(9) 推荐(1) 编辑
  2014年1月4日
摘要: 之前为了测试游戏需要,写了这个工具.以测试在内存,显存不够的情况下,游戏的运行情况.可以用它分析WINDOWS下的内存申请.现在将工具加原码都发布出来.显存的申请使用的是D3D提供的接口.用户使用时需要关闭D3D的Debug模式,否则显存申请失败时会导致崩溃.当然你也可以改代码,使用try cat... 阅读全文
posted @ 2014-01-04 17:30 叶飞影 阅读(2333) 评论(6) 推荐(4) 编辑
  2014年1月3日
摘要: 我所遭遇过的游戏中间件---SpeedTree SpeedTree是一个专门用于渲染植被的中间件,并提供了一套完善的植物编辑工具。在它官方提供的DEMO中,你会看到高度逼真的树木和植物,在风的影响下树影婆娑,十分精美.感觉它的Shader写到了极致,让我有种叹为观止的感觉.SpeedTree有两大特... 阅读全文
posted @ 2014-01-03 19:27 叶飞影 阅读(1987) 评论(0) 推荐(0) 编辑
摘要: 我所遭遇过的游戏中间件---nvDXTLib nvDXTLib是Nvidia提供的一套用于DXT纹理压缩SDK.接口十分简洁,就是提供了几个纹理压缩的函数,其中我使用最多的函数是:1 DXTLIB_API NV_ERROR_CODE nvDXTcompress(2 const unsigned char * srcImage,3 size_t width,4 size_t height,5 size_t byte_pitch,6 nvPixelOrder pixelOrder,7 nvCompressionOptions * options,8 DXTWriteCallback fileWri 阅读全文
posted @ 2014-01-03 19:23 叶飞影 阅读(1045) 评论(1) 推荐(1) 编辑
摘要: 我所遭遇过的游戏中间件---HumanIK Autodesk HumanIK游戏中间件,为游戏创建更加可信、真实的角色动画。该中间件的全身逆向运动(FBIK)系统支持角色真实地与所在环境及其它角色进行交互。通过动态地将FBIK信息分层置于运行中的现有视频中,创建、修改和重新利用角色动画,以此来节省动画师宝贵的时间。 以上语句拷贝自HumanIK广告手册.所谓IK(反向动力学)就是相反于正常的骨骼动作播放,提供骨架上某几根骨骼的变换状态,让骨架动态的摆出合理的位置.举个具体应用的例子,如果要实现两个高度不定的角色间的握手,不使用IK只能为每两种高度的角色编辑一套动作,这样做工作量和数据量都很大. 阅读全文
posted @ 2014-01-03 19:15 叶飞影 阅读(1802) 评论(0) 推荐(0) 编辑
  2013年12月27日
摘要: 我所遭遇过的游戏中间件--Kynapse Autodesk Kynapse游戏中间件是一款面向游戏开发、非玩家控制角色实时模拟的领先的人工智能解决方案。Kynapse具有先进的路径查找功能,比如三维路径查找、动态环境评估,并支持复杂地形中的群体路径查找。高效的制作工具包以及专为简便集成和自定义而设计的结构可帮助游戏开发人员简化创建顶级控制台游戏和 PC游戏的过程。这项高性能的游戏人工智能技术能够帮助游戏开发者在复杂的地形中,模拟先进的动态三维自动寻路、环境感知与大规模群体移动。其主要功能有: (1)实时三维自动寻路—使用面向游戏内角色的经过验证的算法,能够面向复杂地形的动态3D路径查找,找到他 阅读全文
posted @ 2013-12-27 20:29 叶飞影 阅读(1858) 评论(0) 推荐(1) 编辑
  2013年12月26日
摘要: 3D屏保:排色榜 排色榜,是一个针对图形学中的色彩进行排序的DEMO,这里的色是色彩的意思,看成别的点进来的同学请自觉面壁.该DEMO可以按RGB,GBR,BRG,灰度值四种方式进行排序.排序算法为冒泡排序,之所以选择这种排序算法,是因为该算法容易实现相邻两个颜色的交换旋转. 前些天看到一个图片是关于四六级中关于颜色的单词和GRE中关于颜色的单词的对比.我突然想到有必要定义一套图形学中的色彩,然后将其一一摆列显示出来.这样当我写程序时想选择一个颜色时,启动该程序选就是了.记得我写自己的第一款游戏"Hello Color",为了找到10个对比度明显的颜色费了不少劲.有了这个D 阅读全文
posted @ 2013-12-26 17:26 叶飞影 阅读(1916) 评论(0) 推荐(0) 编辑
摘要: 抽奖圆盘 前些日子去超市,消费满一定钱数可以参加抽奖,就是在电视机上有个可旋转的圆盘,按一键开始,按一键抽奖结束.看到最大奖的扇形区域大约有个10度角的样子,按说中大奖的概率应该是36分之1.当然,这是天真的想法.盘子上奖项区域面积的大小不会等于其抽中概率的大小.于是我写了这个DEMO,圆盘上随机生成十种颜色,用户可以分别设置每个颜色的区域面积大小和抽中概率大小.面积大的颜色中奖概率不一定大,面积小的颜色中奖概率不一定小,一切尽在我的掌握之中.写这个程序算是为自己以后的抽奖积累人品吧,希望明年能中个什么奖.右侧控件设置圆盘颜色区域大小与抽中概率大小.如下图所示:空格键控制抽奖,"R& 阅读全文
posted @ 2013-12-26 08:39 叶飞影 阅读(1537) 评论(4) 推荐(4) 编辑
  2013年12月25日
摘要: 使用Flash做游戏界面的另一种方式是通过Abode提供flash.ocx处理Flash界面.将Flash图像通过GDI绘制出来后,再将图像数据拷贝到一个D3D的纹理结构中,最后由引擎的D3D接口进行渲染。用它来做游戏UI界面的好处就是方便,快捷.做出来的Flash在Abode的播放器中什么样,那么在游戏客户端中的就是什么样.不用担心什么显示不一致,脚本不支持之类的问题.另一方面,FlashOcx对AS脚本的处理效率比Scaleform强得多.但最大的问题就是渲染效率,毕竟需要做大量的像素拷贝工作,这很耗时. 在项目中,一开始使用FlashOcx做UI界面,后来买了Scaleform... 阅读全文
posted @ 2013-12-25 17:33 叶飞影 阅读(1265) 评论(1) 推荐(1) 编辑
摘要: 我所遭遇过的游戏中间件---Scaleform Scaleform帮助开发人员利用现代系统的三维硬件加速性能创建电影品质的菜单、游戏内HUD,动画纹理、迷你游戏以及移动游戏与应用。Scaleform作为一个可视化UI设计的中间件解决方案,其高性能已被充分证明,有了它,开发者通过Adobe Flash Studio可以高效率、低成本地创建富有现代感的GPU加速动画用户界面和矢量图形,而无需学习新工具的使用或者动画处理方法。Scaleform的另外一个名子叫GFX,在本文中有时使用Scaleform,有时会使用GFX,读者把它们当成一个东西就可以了.GFx为直接在Flash Studio创作游戏用 阅读全文
posted @ 2013-12-25 07:33 叶飞影 阅读(5852) 评论(7) 推荐(2) 编辑