
常用算法
yang3wei
软件专业,2011年起专注手游开发,参与项目:益智类:NutsPhysics、OhMyFish!,战争策略类:全民君王、红警崛起
展开
-
判断点是否在多边形上算法roadMap
经历了三个版本,虽然都是小改动,但是表现出的效果还是相差蛮大第一版是移植的别人的(试用之后我发现点相交于多边形的边上效果不是很好)第二版改善了点相交于多边形边上的判断(改善之后效果比较明显,但还是会偶发判断失准)第三版增加了数量级的判断,将偶发性的判断失准再降下一个台阶(数值计算误差是不可避免的,所以在判断相等的时候,必得要确定一个可容忍的误差数量级)下面上三版的相关代原创 2012-05-03 23:12:44 · 1898 阅读 · 0 评论 -
inner edge消除算法
图:核心逻辑: vector* allSegments = new vector(); float multiplyFactor = PTM_RATIO * CC_CONTENT_SCALE_FACTOR(); for(BYPolygon* polygon in comp.polyList) { if(!polygon.isPirate) {原创 2012-05-22 09:29:31 · 832 阅读 · 0 评论 -
六边形网格快速定位
转载自:http://www.thecodeway.com/blog/?p=1811&cpage=1#comment-4012 在游戏中,一般使用正方形网格管理二维场景中的各种物体,这种网格简单快速,但缺点就是相邻网格的间距是不均匀的,因为对角相邻的网格的间距要比左右相邻的间距要大。 一个解决方法是使用蜂窝状的六边形网格代替正方形网格,六边形相邻网格之间的距离是固定的,转载 2012-06-29 23:59:35 · 4761 阅读 · 0 评论 -
“进化”出来的蒙娜丽莎
转载自:http://www.thecodeway.com/blog/?p=1499 如果在网上搜索“遗传算法”的话,会找到一些文章讨论如何使用多边形画出迷人的“蒙娜丽莎”这个话题,比如这个网站只使用50个多边形就模拟出逼真的蒙娜丽莎: 貌似很唬人的效果,但这里所谓“遗传算法”其实并不复杂,稍微有一些编程基础的人都可以看的明白,流程就是:输入某个目标图像转载 2012-06-30 00:16:42 · 3189 阅读 · 2 评论 -
objective-c判断两条线段相交
参考自:http://zhidao.baidu.com/question/146717333LineIntersect.h//// LineIntersect.h// HungryBear//// Created by Bruce Yang on 12-3-12.// Copyright (c) 2012年 EricGameStudio. All rights reser原创 2012-03-20 18:36:12 · 2224 阅读 · 1 评论 -
点阵图形的高效旋转算法
完整版见:http://www.doc88.com/p-04368157980.html转载 2012-08-31 18:31:40 · 2428 阅读 · 0 评论 -
求取多边形矩形包围框的中心点方法
今天下午做了一下游戏功能的扩充,不料又落马了,记录一下~/** * 求取多边形的中心位置(该方法是最原始版,之前因为用的少,所以没有发觉到逻辑上存在错误)~ * Added By Bruce Yang on 2012.09.02.15.30~ * 实践证明,这个方法的逻辑是错误的,汲取这个教训~ */+(b2Vec2) getPolyCenterLogicWrong0:(BYPoly原创 2012-09-02 15:39:46 · 4509 阅读 · 1 评论 -
C语言四舍五入函数
转载自:http://hi.baidu.com/wendaosheyu/blog/item/6781cb08b9d7d23be82488cf.html刚才做编程练习的时候突然发现题里面居然要求与一个浮点数最近似的整数,很明显是四舍五入.然后就找,书上网上找了半天,得出一个结论:标准C语言没有四舍五入函数然后我就写了这个:int NearestInt (double _FloatIn转载 2012-08-26 18:56:45 · 9464 阅读 · 0 评论 -
计算几何_多边形的有向面积和确保多边形的点是逆时针排列
原文地址:http://www.myexception.cn/program/776883.htmlconst double eps = 1e-8;int sign(double d){ return d eps);}//多边形类struct poly{ static const int N = 1005; //点数的最大值 point ps[N+5]; //逆时针存储多边转载 2012-12-25 01:16:24 · 1183 阅读 · 0 评论 -
STL list
转载自:http://hi.baidu.com/346248129/blog/item/37697f951bc62b4cd1135e8c.html什么是STL呢?STL就是Standard Template Library,标准模板库。这可能是一个历史上最令人兴奋的工具的最无聊的术语。从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是算法转载 2012-04-18 16:37:31 · 946 阅读 · 0 评论 -
STL Algorithm::Count()
转载自:http://www.dreamincode.net/forums/topic/52509-stl-algorithmcount/What do I need to know before studying this tutorial?You should have a knowledge of vectors and vector iterators.What d转载 2012-04-18 16:35:44 · 939 阅读 · 0 评论 -
求过圆心直线与圆的两个交点
主要是注意所使用的数据类型。之前用的是float,出现了一些意外,而且花费了我不少时间来反复验证、推导,做了很多的无用功,而且,反复推导得出来的计算步骤并没有什么不牢靠的地方。然后计算得到的结果却是让人如此之不省心,梗的我闷得慌。今天上午发来了一贴,多位朋友各抒己见,总算是让我发现了一些不足的地方,首当其冲的是一个变量弄错了,导致大批的计算失准。后来修正了这个bug以后原创 2012-04-28 21:10:32 · 6509 阅读 · 0 评论 -
objective-c加密算法AES
转载自:http://hi.baidu.com/myguru/blog/item/32faa33e892705f4828b1326.html基础就是mac自带库libSystem中的CCCrypt例:@interface NSData (AESAdditions)- (NSData*)AES256EncryptWithKey:(NSString*)key;- (NSData*)AES256转载 2012-01-17 02:39:14 · 2070 阅读 · 0 评论 -
objective-c 生成字符串的message digest(md5)
//// MD5.h// MacEncryptTool//// Created by user on 12-1-17.// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.//#import#import@interface NSString (MyExtensions原创 2012-01-17 02:33:34 · 1058 阅读 · 0 评论 -
objective-c判断点是否在多边形内(包括在多边形上)的一个经典算法
/** 检查某点是否包含在多边形的范围内(只用与判断在多边形内部,不包含点在多边形边上的情况)~ */- (BOOL) checkPointWithinPolygon:(PolyVerticesWrapper*)pvw point:(b2Vec2)point { int verticesCount = [pvw verticesCount]; b2Vec2 *ptP原创 2011-10-02 15:28:48 · 1971 阅读 · 1 评论 -
用Astar(A*)算法 实现的迷宫最短路。代码比较规范,可作为模板
转载自:http://www.cnblogs.com/kdy71107216/archive/2010/08/06/1794447.htmlimport java.util.Comparator;import java.util.PriorityQueue;import java.util.Scanner;public class Main { boolean graph[][]转载 2011-09-18 22:55:21 · 1248 阅读 · 0 评论 -
判断两条线段是否相交
转载自:http://www.cppblog.com/smiling/archive/2006/10/12/13605.html方法一、bool TwoLineIsIntersect(float x0, float y0, float x1, float y1, float x2, float y2, float x3, float y3, float &InterX, flo转载 2011-09-27 13:32:32 · 1032 阅读 · 0 评论 -
判断点在多边形内部的方法(Java版)
/** * 检查多边形是否包含了某点~ * @param point * @return */ public boolean containsPoint(BYPoint point) { int verticesCount = vertices.size(); int nCross = 0; for (int i = 0; i < verticesC原创 2012-04-05 14:56:22 · 6691 阅读 · 1 评论 -
Base64
转载自:http://zh.wikipedia.org/wiki/Base64Base64维基百科,自由的百科全书Base64是一种使用64基的位置计数法。它使用2的最大次方来代表仅可打印的ASCII 字符。这使它可用来作为电子邮件的传输编码。在Base64中的变量使用字符A-Z、a-z和0-9 ,这样共有62个字符,用来作为开始的64个数字,最后两个用转载 2012-01-12 07:43:46 · 780 阅读 · 0 评论 -
判断点在多边形内的多种写法(C版)
转载自:http://blog.youkuaiyun.com/okvee/article/details/5643407再经典不过的算法了:// 功能:判断点是否在多边形内 // 方法:求解通过该点的水平线与多边形各边的交点 // 结论:单边交点为奇数,成立!//参数: // POINT p 指定的某个点 // LPPOINT ptPolygon 多边形的各个顶点坐转载 2012-04-05 14:55:00 · 1795 阅读 · 0 评论 -
Java Base64编码类推荐
转载自:Something Sun Should Have Included Long AgoDownload now! (v2.3.7 48KB)Follow the file release RSS feed... This is a Public Domain Java class providing very fast Base64 encodi转载 2012-03-23 02:02:36 · 2162 阅读 · 0 评论