将随机二维形状映射到 uv 参数化矩形网格

Mapping random 2D shape to uv parametric rectangular grid

我想将一些随机的 2D 形状映射到 uv 参数space, 例如 A: (u: 0.0 v: 1.0) B: (u: 0.0 v:0.0) C: (u: 1.0 v: 1.0) D: (u:1.0 v: 0.0), 并希望将项目内部的随机点 P 映射到参数 space。

直线AB、AC、BD、CD由路径组成,也可以表示为相连的边

那么问题来了,我该如何得到P的正确uv值呢? 我在图形和几何方面有一些知识,所以如果需要,你能推荐一些我能找到问题解决方案提示的基础文章吗? 非常感谢

你问的没那么简单。

您可以通过两个 Coons 插值 X(u, v) 和 Y(u, v) 生成从 (u, v) 坐标到笛卡尔坐标 (x, y) 的变换。

现在如果你想反转关系,你需要解决这个问题

X(u, v) = x
Y(u, v) = y

这是非线性的。

如果您有很多点要映射(这很可能),解决该问题的方法是在 (u, v) space 中应用网格并计算 (x, y)。网格应该足够细以确保准确性。然后对于给定的x和y,你需要找到它们所属的四边形,例如通过双线性插值得到u和v,计算水平与边的交点,然后与垂直相交。

要加速包含瓦片的搜索,您可以使用边界框并将它们存储在间隔树中。也可能搜索最近的顶点(通过 kD 树)并在相邻的图块中搜索封闭的四边形。

所有这些都是非常技术性的。


如果您的目的只是提供顶点处可用的 (u, v) 信息的三角剖分,如上所述的网格划分就足够了。