当前位置 博文首页 > 卤蛋实验室:【十天自制软渲染器】DAY 02:画一条直线(DDA 算法

    卤蛋实验室:【十天自制软渲染器】DAY 02:画一条直线(DDA 算法

    作者:卤蛋实验室 时间:2021-01-19 10:05

    高性能的画一条线
    ??

    推荐关注公众号「卤蛋实验室」或访问博客原文,更新更及时,阅读体验更佳

    第一天我们搭建了 C++ 的运行环境并画了一个点,根据 点 → 线 → 面 的顺序,今天我们讲讲如何画一条直线。

    本文主要讲解直线绘制算法的推导和思路(莫担心,只涉及到一点点的中学数学知识),最后会给出代码实现,大家放心的看下去就好。

    1.DDA 直线算法

    1.1 简单实现

    我们先来回顾一下中学的几何知识,如何在二维平面内表示一条直线?最常见的就是斜截式了:

    其中斜率是 ,直线在 轴上的截距是


    斜截式在数学上是没啥问题的,但是在实际的工程项目中,因为硬件资源是有限的,我们不可能也没必要表示一条无限长度的直线,现实往往是已知一条线段的起点 终点 ),然后把它画出来。

    这时候用两点式表示一根直线是最方便的,其中