math - 获取任意二维三角形的扫描线

标签 math graphics interpolation rasterizing

如何检索 2D 三角形中所有线的扫描线?

我正在尝试实现 2D 软件渲染器的最基本功能,即纹理映射三角形。我使用 OpenGL 完成此操作的次数多得数不过来,但当我尝试自己完成此操作时,我发现自己一瘸一拐。

我看到很多文章说,为了填充一个三角形(其三个顶点的纹理坐标均固定为 [0, 1]),我需要在三个点之间进行线性插值。什么?我认为插值是在两个 n 维值之间进行的。

注意;这不适用于 3D,它是严格的 2D,所有三角形都是任意的(不以任何方式轴对齐)。我只需要像 OpenGL 那样用它们的纹理填充屏幕。我无法使用 OpenGL 作为解决方案。

最佳答案

可以在这里找到一个很好的答案和描述:http://sol.gfxile.net/tri/index.html

您可以使用Bresenham algorithm绘制/找到边。

关于math - 获取任意二维三角形的扫描线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8848179/

相关文章:

c - 我的 C 程序从用户输入中查找最接近的数字对没有打印正确的输出?

android - 自定义android AccelerateDecelerateInterpolator

matlab - 如何在不超出点的情况下在点之间进行插值?

algorithm - 如何使用埃拉托色尼筛法得到第 n 个素数?

database - 算法的简单数学搜索表以查明一种类型的条目是否对另一种类型有因果影响?

c++ - 从 1D 数组表示计算 3D 索引的有效方法

eclipse - SWT表/树查看器单元中的GIF动画

c# - 如何找到所有图形卡? C#

html - HTML 中的图像背景更改,如 “life.com”

cuda - 使用cuda纹理内存进行一维插值