我从维基百科和其他地方的伪代码实现/复制了 wu 线算法。

绘制正弦波时,它会在线条从 y 主导变为 x 主导(或反之亦然)的点处中断。 (我没有复制端点代码,因为它看起来很糟糕,而且我的目的不需要它们。)

有谁知道这个问题的解决方案?如果没有,我将自己修改算法以使其工作。我只是好奇是否有人遇到过这个问题并且确切地知道如何解决它。是否可以在没有全局意识到彼此的线路的情况下实现?或者这就是绘图 API 的实现 moveto 和 lineto 函数的原因?

The pseudo code

最佳答案

如果性能不是一个大问题,您可以采用更幼稚的方法来绘制抗锯齿线,例如:

  • 在更高分辨率的网格中绘制线条(例如,目标分辨率的整数倍) - 您需要调整它们的粗细。
  • 通过将每个 n x m 像素块转换为单个像素,将采样到您的目标分辨率,例如通过平均RGB值。

  • 根据您正在开发的语言或操作系统,可能会内置功能来简化此操作。

    或者,您可以计算每个像素的哪一部分被线覆盖(通过将像素正方形与线相交)来计算像素值,使像素强度相对于线覆盖的像素区域的部分。

    10-06 13:35