获得2点之间 所有点的坐标 --布雷森汉姆直线演算法 OC版本
来源:互联网 发布:免费的流程图软件 编辑:程序博客网 时间:2024/04/30 05:37
不多说,上代码
-(NSArray*)getAllPointsFromPoint:(CGPoint)fPoint toPoint:(CGPoint)tPoint
{
NSMutableArray *ret = [NSMutableArray array];
float deltaX = fabsf(tPoint.x - fPoint.x);
float deltaY = fabsf(tPoint.y - fPoint.y);
float x = fPoint.x;
float y = fPoint.y;
float err = deltaX-deltaY;
float sx = -0.5;
float sy = -0.5;
if(fPoint.x<tPoint.x)
sx = 0.5;
if(fPoint.y<tPoint.y)
sy = 0.5;
do
{
[ret addObject:[NSValue valueWithCGPoint:CGPointMake(x, y)]];
float e = 2*err;
if(e > -deltaY)
{
err -=deltaY;
x +=sx;
}
if(e < deltaX)
{
err +=deltaX;
y+=sy;
}
} while (round(x) != round(tPoint.x) && round(y) != round(tPoint.y));
[ret addObject:[NSValue valueWithCGPoint:tPoint]];//add final point
return ret;
}
可以到wiki上看到这个算法说明
英文版:http://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm
中文版:http://zh.wikipedia.org/wiki/布雷森漢姆直線演算法
- 获得2点之间 所有点的坐标 --布雷森汉姆直线演算法 OC版本
- 获得两点之间的所有路径点
- opencv如何获得图片所有像素点的坐标
- 坐标点之间的线
- swing 两点之间直线上的任意距离点的坐标
- 计算点到直线的垂点坐标
- C# 求点在直线的投影点坐标
- 根据四个点坐标求两个直线的交叉点坐标
- 获得圆的各点坐标
- 百度地图API关于两点之间连接直线上的所有点
- 计算2个坐标点之间的距离
- 计算两个坐标点之间的距离
- 视图之间坐标点的转换
- 平面坐标系之间点坐标的换算
- 计算两个坐标点之间的距离
- 点到直线的垂直交点坐标 和 距离计算
- 空间点到直线垂足坐标的计算方法
- matlab 求点到任意直线的投影点坐标
- 解决SQL Server[Suspect]
- 数位dp(求1-n中数字1出现的个数)
- aspect学习(1)before&after&around
- ADSP-BF533 EBIU接口如何实现SDRAM读写
- OpenGLES demo - 2. Shader
- 获得2点之间 所有点的坐标 --布雷森汉姆直线演算法 OC版本
- 80x86保护模式下IDT和中断调用过程分析
- android网络抓包及Wireshark介绍
- 浏览器引擎
- 创建Eclipse桌面链接
- org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.internal.ast.HqlTok
- Cocos2d-x标签文乱码问题
- 八旬老太缝坐垫,专门供路人休息
- uva539