在 3d 平面上生成规则点网格

Generating regular point grid on 3d planar surfaces

我想生成位于 3d 表面上的点。在我的例子中,这些表面是 3d 城市模型中的建筑墙壁和屋顶。我怎样才能产生这些点数?用于此目的的算法是什么?我想像附图中那样在曲面上生成点 picture of points on surfaces

您的曲面可以细分为矩形和三角形(矩形通常被视为两个三角形)。

每块都有基础顶点 A0 (x0, y0, z0) 和两个相邻顶点 A1A2。制作基向量

 V1 = A1 - A0
 V2 = A2 - A0

要在这块平面内做规则的网格点,只需计算

P(u, v) = A0 + V1 * u + V2 * v

其中 u 和 v 是 0..1 范围内的等距参数。三角形的附加限制

u+v <= 1