2013-08-16 44 views
0

我需要將文本(字符串+字體)轉換爲網格(頂點,索引,三角形等),但我不需要繪製任何東西。我只需從一個API獲取一個字符串,並將其作爲頂點&索引推送到另一個API。做這件事最簡單/最簡單/最好的方法是什麼?字體指標和文本放置當然可用,不需要其他轉換。將文本轉換爲網格

我目前正在使用VC++。然而,任何種類的OpenSource(C/C++,C#,VB,...)和「非開放但免費的」COM/.NET庫都會很棒。

我聽說過FreeType。它回答我的祈禱還是有更好的東西?

編輯:作爲尼科Schertler評論,似乎有Mesh.TextFromFont功能在DirectX -libs可能會做的伎倆。謝謝妮可!當我有時間在實踐中進行測試時,我會進行更新。

+1

呃,答案是不可能的。至少需要提供一些文本格式的文檔。 –

+0

我幾乎可以做任何從C++的basetype char *到Java的StringBuffer的轉換。這不是問題。我需要一個「網格器」,它可以使用某種定義的字體將字體/字符串變成網格。同樣,字體對象類型不是問題,轉換通常是微不足道的。 –

+0

我使用freetype,並發現它很容易,但沒有觸及[矢量數據](http://www.freetype.org/freetype2/docs/glyphs/glyphs-6.html)。有誰知道一個庫可以將曲線轉換爲線段,然後用三角形填充形狀?也許是一個有趣的練習,但要花時間去做自己。 **編輯**我剛剛找到[this](http://ftgl.sourceforge.net/docs/html/ftgl-tutorial.html),但你說你不想渲染器位。 – jozxyqk

回答

1

Mesh.TextFromFont聽起來不錯,但它沒有保存一天,因爲我無法弄清楚如何從網格對象中獲取實際的點/三角形數據。

但後來我發現this。在這個項目中,GraphicsPath用於從字形創建點路徑。然後將這些點轉換爲多邊形,然後使用Poly2Tri將這些多邊形分成三角形。

快速瀏覽源代碼以及一些小的修改和代碼剝離我用一個簡單的靜態函數完成了一個很好的.NET -dll,完成了我所需要的一切。

+0

你有沒有在任何地方分享過? – joon

+0

@joon不幸的是,我再也沒有消息來源了,但我確實記得我不得不對Laurent Dupuis的項目所做的更改非常少。 –