使表面适合3到100点,其中z值为3D

时间:2018-07-06 13:16:00

标签: math 3d 2d rgb surface

我发现自己遇到了很大的问题。我的数学水平很平均,我需要解决一些问题,而这在互联网上还不是很清楚。

我的问题:我有X和Y定义的2D空间。该空间只是一个绘图空间。我想为特定的Xs,Ys指定具有RGB值的颜色。

所以说我有4个点,在XY中定义了位置,在Z中定义了颜色:

  1. [0,0,[255,0,0]]
  2. [0,10,[0,255,0]]
  3. [10,10,[0,0,255]]
  4. [5,5,[0,0,0]]

,我的绘图空间是xy:15x15。 我想将颜色分配到所有空白点

对我来说,这是一个非常棘手的问题,因为Z轴本身基本上就是3D空间。

我的全部意图是创建一个颜色图,其中点1,2,3,4之间具有平滑过渡。 我可以在1D的情况下解决此问题,该过渡在2点之间。但是我需要基于这4个点的拟合曲面在XY绘图空间中创建2D色彩图,这取决于3D-RGB的空间以及它们在XY绘图空间中的距离。

预先感谢您的帮助

1 个答案:

答案 0 :(得分:1)

您没有显示任何算法或代码,因此我只介绍一个高级算法。如果您需要更多细节,代码或数学公式,请显示更多自己的作品,然后询问。您不能仅解释“平稳过渡”的含义,它有多种含义。这将导致连续的阴影,但可能不足以达到您的目的。

首先,在矩形绘图空间中给定点,找到这些点的Voronoi diagram。这会将绘图空间划分为凸多边形,每个多边形围绕您的一个点。

对于Voronoi图中的每个顶点,计算出最接近顶点的点-通常只有三个点,但可能还会更多。然后,在该顶点处分配颜色,该颜色是附近给定点的RGB值的平均值。也就是说,分别取R值,G值和B值的平均值。

对于Voronoi多边形上的任何点,其颜色都是端点处两种颜色的加权平均值。即如果该点是到一端的距离的三分之一,则其RGB值是到端点的距离的三分之一。

最后,对于Voronoi多边形的内部内的任何点,从定义该多边形的点(“中心点”)到您正在查看的当前点,计算射线。查找该光线与多边形相交的位置。然后,RGB值是中心点和多边形相交点的值的加权平均值。

最困难的部分是找到Voronoi图。 Fortune's algorithm可以在合理的时间内完成此操作。您可能会找到一个库,以您选择的编程语言为您做到这一点。


另一种算法是从triangulation of your given points和绘图区域的角开始。那么,三角形中任意点的颜色就是顶点颜色的加权平均值。对于顶点或三角形边缘上的点,这将自动保持一致,因此,这可能比我以前的算法更简单。这里的困难是找到三角剖分(任何人都会做)。