首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

给定一线段起点终点坐标(int),怎么快速计算线段中多少个整点坐标

2012-03-28 
给定一线段起点终点坐标(int),如何快速计算线段中多少个整点坐标?例如,线段(0,0)-(2,2),经过的整点坐标有3

给定一线段起点终点坐标(int),如何快速计算线段中多少个整点坐标?
例如,线段(0,0)-(2,2),经过的整点坐标有3个(0,0),(1,1),(2,2),如果是你,会怎么算?我目前想法是列直线方程,然后循环,不知有没有更好的方法,特来请教

[解决办法]
找到第一个整数点.
计算他和起点的X轴距离D.
总数等于 

起点到终点的X轴距离 / D
[解决办法]
起点到终点的X轴距离 / D + 1
[解决办法]
gcd两点的横纵坐标的差
即gcd(x-x0,y-y0)+1
[解决办法]
很简单的问题,一楼已经说了,最好情况下O(1)的复杂度...

热点排行