1

这似乎是一个非常基本的数学/图形问题,但由于某种原因,我似乎无法理解它。

我得到的是四个线段,勾勒出一个四边形。每个线段上的每个顶点都有一个已知的颜色值。为简单起见,我们假设每条线段有 100 个顶点(也就是 100 个已知色点)。一个示例可能如下所示:

我需要做的是,根据轮廓上点的颜色,渲染一个带有每个内部像素颜色的实心四边形。执行此操作的最明显方法(不为每个 100*100 色点指定一个顶点)是首先使用每个插值颜色值生成一个 100x100 位图,然后将其作为纹理应用到四边形。我只是很难弄清楚如何计算这些内部颜色值。

这似乎是双线性插值的问题,但由于我不是试图在四个已知角点内而是在已知色点的“+”交叉点处找到值,所以我一直感到困惑。我的数学有点生疏了:P

例如,我如何计算(50,50)点的颜色值 - 在四边形的中间 - 已知颜色点在(0,50),(50,0),(50,100),和(100,50)?这甚至是双线性插值,还是完全不同?

提前致谢!

4

1 回答 1

1

这看起来像是Dirichet 条件边界值问题(即,值在边界处指定)。您无法使用双线性插值解决此问题,因为它通常会证明(如果您有四个以上的输入点),与边缘像素相邻的像素不会与其直接相邻的颜色连续。

您需要解决这个问题的主要问题是一个相当平滑的方程,并且总是给出一个接近它在边界处的邻居的颜色值,并且有多个选项。明显要使用的是拉普拉斯方程,它基本上就像在边界处将橡胶片固定在每个颜色通道的值上,然后让它放松。求解拉普拉斯方程并非易事,因为您需要为每组新的边界条件模拟橡胶板,但这很常见,因此您可以寻找几乎任何语言的求解器或示例。

于 2012-03-24T18:46:14.280 回答