1

我想通过 CGAL 从三角形模型(由顶点和面组成)中浮雕文本。

我使用stbtt docs将 True type 字体中的字母形状转换为多边形。

浮雕的简单方法是使用布尔运算(联合减号来凸起或雕刻),但是当您使用有机表面时,最好不要定义字母的顶面并使用垂直移动的源模型的原始部分为曲面建模。

所以,我想通过与字母模型相交来划分源三角形模型(理想情况下,在字母模型的一侧有梯形)。收集由顶点序列和半边组成的交点圆(可选过滤圆以不使用它)。并收集一组内部三角形(来自位于字母模型内部的源模型的三角形)。

下一步将加倍交叉点(在新顶点和旧顶点之间创建锯齿形三角形)并在雕刻方向(垂直于表面)从内部三角形移动顶点。

我在用户手册中找到了可以为我做除法的Corefine操作。我可以通过名称参数 edge_is_constrained_map 收集相交顶点,但我错过了识别内部部分的功能。我希望地图中的方向是半边,但事实并非如此。我也错过了与字母模型相交的方式,其中边由梯形构成(我必须将梯形划分为 2 个三角形,这会导致更多的交叉点)。

你能指点我吗:

  1. 在划分三角形之前,我可以在哪里找到与梯形(字母的边)相交的“共同边”( CGAL 文档中的绿线)。我找到了函数corefine_and_compute_intersection()但它适用于三角形而不是梯形模型。
  2. 如何使用(适用于 corefine)corefine_and_compute_intersection(上面的链接)的结果。能够划分三角形并获得相交线的方向以识别内部三角形。
  3. 如何过滤Corefine函数(上面的链接)中的公共边以不使用其中一些并获取公共边的方向?
4

0 回答 0