【发布时间】:2011-08-25 10:35:49
【问题描述】:
如果不是水平或垂直,在平面上画线(逐点)的算法是什么?
【问题讨论】:
标签: .net algorithm graphics image-processing
如果不是水平或垂直,在平面上画线(逐点)的算法是什么?
【问题讨论】:
标签: .net algorithm graphics image-processing
【讨论】:
没有“逐点”算法 - 点非常小,因此任何基于点的算法都需要无限时间才能完成。
相反,线条是根据名义上的笔宽绘制的,并计算用笔在线条上划过的像素的数量和强度。
如果您只想像 1970 年代那样打开和关闭像素,请使用 Brensenham 的算法系列之一。
大多数现代计算机图形使用抗锯齿算法 - 描边、二次采样或精确像素覆盖 - 有时在 GPU 中使用并行算法(例如,通过将细矩形投影到平面上来绘制一条线,或执行覆盖计算每个像素并行)。
很多图形算法都是基于贝塞尔曲线的;直线只是控制点在一条线上的曲线,因此绘制它们的算法是相同的,尽管可能会进行一些优化。
【讨论】: