读书人

给定一线段起点终点坐标(int)怎么

发布时间: 2012-03-28 15:40:03 作者: rapoo

给定一线段起点终点坐标(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)的复杂度...

读书人网 >C语言

热点推荐