【问题标题】:Fit surface to 3 to 100 points where z values are 3D将曲面拟合到 z 值为 3D 的 3 到 100 个点
【发布时间】:2018-07-06 21:56:38
【问题描述】:

我发现自己遇到了一个很大的问题。我的数学很一般,我需要解决一些互联网上没有涵盖的问题。

我的问题:我有由 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 在它们之间具有平滑过渡。 我能够在一维中解决这个问题,其中过渡在 2 点之间。但是我需要根据这 4 个点的拟合曲面在 XY 绘图空间中创建 2D 颜色图,这取决于 3D-RGB 的空间和它们在 XY 绘图空间中的距离。

提前感谢您的帮助

【问题讨论】:

标签: math 3d 2d rgb surface


【解决方案1】:

你没有展示任何算法或代码,所以我只解释一个高级算法。如果您需要更多详细信息或代码或数学公式,请展示更多您自己的工作,然后询问。您并没有解释“平滑过渡”的含义——它有多种含义。这将导致连续着色,但可能不够平滑,无法满足您的目的。

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

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

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

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

最难的部分是找到 Voronoi 图。 Fortune's algorithm 可以在合理的时间内做到这一点。你可能可以找到一个库,用你选择的编程语言来为你做这件事。


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

【讨论】:

  • 感谢您的深入洞察。我将尝试使用三角测量的解决方案。
猜你喜欢
  • 1970-01-01
  • 2021-11-19
  • 2021-03-02
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-02
  • 1970-01-01
相关资源
最近更新 更多