几何 – 是否可以测试像素是否在bresenham生成的线上而不生成线?

我在网格上有一个像素P.我想知道该像素是否在P0和P1之间的
bresenham生成线上而不实际生成线.这有可能提出这样一个决定因素吗? 最佳答案 我写这个作为答案,尽管这只是一个非常局部的答案.

我相信答案是肯定的.然而,编写它的证明相当有点工作,至少需要TeX支持是可以理解的.相反,这是开发证据的关键思想.

考虑一个介于0和1之间的斜率.这很通用,您可以通过反射得到其他三个部分. Brensenham的算法为您提供了一系列水平运行,每个运行都增加1.这些运行的长度总是n或n 1,其中n <= 1 / m <= n 1.所以你可以想到Brensenham线作为0和1的二进制序列.这是基本的. 更不明显的是,这个序列受到m的连续分数扩展的支配.考虑上述不等式的误差项m – 1 /(n 1).这通过用斜率1 /(n 1)从下面近似斜率m来产生第一“校正斜率”.迭代这个过程得到一系列收敛到m的修正斜率.很明显,这些校正斜率只是连续分数序列的变换.您还可以看到上面的0/1序列是一组越来越大的quasisubperiods,其层次结构是连续分数扩展的另一个变换. 为了检验你对此的理解,一个结果是这些关系是如果m是有理的,那么它的连续分数扩展是有限的,Brensenham序列是周期性的. 这为您提供了比谓词测试更强大的功能.您可以使用校正斜率序列来计算任意x坐标的y坐标.简单地将所有修正斜率乘以x.加上足够多的它们直到误差界限间隔(你得到交替的上限和下限)完全具有整数范围,即n <= a< b< n 1.

点赞