-1

我需要将文本(字符串+字体)转换为网格(顶点、索引、三角形等),但我不需要绘制任何东西。我将从一个 API 中获取一个字符串并将其作为顶点和索引推送到另一个 API。这样做的最简单/最简单/最好的方法是什么?字体度量和文本放置当然是可用的,不需要其他转换。

我目前正在使用 VC++。但是,任何类型的开源(C/C++、C#、VB,...)和“非开放但免费”的 COM/.NET 库都会很棒。

我听说过FreeType。它会回应我的祈祷还是有更好的东西?

编辑:正如 Nico Schertler 评论的那样,DirectX -libs 中似乎有 Mesh.TextFromFont -function 可能起到了作用。谢谢你尼科!当我有时间在实践中测试它时,我会更新。

4

2 回答 2

0

Mesh.TextFromFont 听起来不错,但它并没有节省时间,因为我无法弄清楚如何从网格对象获取实际的点/三角形数据。

但后来我发现了这个。在这个项目中,GraphicsPath 用于从字形创建点路径。然后将这些点转换为 Polygons,然后使用Poly2Tri将多边形细分为三角形。

快速浏览源代码并进行一些小的修改和代码剥离,我最终得到了一个不错的 .NET -dll,它具有一个简单的静态函数,可以满足我的一切需求。

于 2013-08-18T22:37:33.520 回答
-1

要将文本转换为网格,您可以使用ttf2mesh库。该库仅包含一个 C 文件,并允许打开 truetype 字体 (.ttf) 并将字形转换为 2d 或 3d 空间中的网格对象。存储库中有一个示例。一个有趣的特性是不依赖任何第三方库(如 libfreetype)。在示例中还有一个 ttf2obj 程序,它允许您将字体文件转换为 OBJ 文件。

于 2021-11-12T17:06:11.710 回答