将随机2D形状映射到uv参数矩形网格

时间:2018-04-23 15:27:07

标签: qt graphics 2d computational-geometry uv-mapping

我想将一些随机的2D形状映射到uv参数空间, 例如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映射到参数空间。

AB线,AC,BD,CD由路径组成,或者可以表示为连接边。

所以问题是,我应该如何得到正确的P值? 我在图形和几何方面有一些知识,所以如果需要,请你推荐任何基本文章,我可以找到任何解决问题的方法吗? 非常感谢你

enter image description here

1 个答案:

答案 0 :(得分:0)

你所要求的并不是那么容易。

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

现在,如果要反转关系,则需要解决系统问题

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

是非线性的。

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

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

所有这些都非常技术性。

如果你的目的只是提供三角形的顶点可用的(u,v)信息,那么如上所述进行网格划分就足够了。