基于角坐标平移和变换平面几何

时间:2017-01-19 22:22:20

标签: three.js

我有一个带分区的平面网格,我想指定每个角应该定位的坐标。移动和更新网格顶点实现了我正在尝试做的事情,只要该平面只有没有内部线段。如果添加内部线段,那么我有比我手动放置的顶点更多的顶点,因此这些顶点需要自动与外边缘的变换一致。

我最初的想法是,我可以创建一个只有四个顶点的几何体,重新定位它们,然后增加我平面上的线段数量,显然,这不是Three.js所支持的,所以我是寻找解决方法。

任何想法都会受到赞赏。

1 个答案:

答案 0 :(得分:2)

我不认为这种转换可以表示为单个矩阵,然后您可以将其应用于平面网格。我认为你确实需要手动计算细分平面的每个顶点的坐标。

有不同的方法来进行此计算。 Bilinear interpolation这种情况似乎可以完成这项工作。这是你如何做到的。如果您有四个点A,B,C,D,那么对于每个内部点,其位置可以作为加权平均值(A和B的加权平均值以及C和D的加权平均值)找到。平均值的权重来自内部平均值的一个方向(例如,X)上的细分顶点的索引,以及外部平均值的另一个方向(例如,Y)。您的索引从0到该方向的细分数(包括),权重应该从0到1,因此weight = index / number of subdivisions

Example courtesy of @prisoner849