2013-08-16 3 views
0

텍스트 (문자열 + 글꼴)를 메쉬 (정점, 인덱스, 삼각형 등)로 변환해야하지만 아무 것도 그릴 필요가 없습니다. 하나의 API에서 문자열을 가져와 정점 & 인덱스를 다른 것으로 밀어 넣을 것입니다. 이 작업을 수행하는 가장 단순하고 쉬운 방법은 무엇입니까? 글꼴 메트릭 및 텍스트 배치는 물론 사용할 수 있으며 다른 변환은 필요하지 않습니다.텍스트를 메쉬로 변환

저는 VC++로 현재 일하고 있습니다. 그러나 어떤 종류의 OpenSource (C/C++, C#, VB, ...) 및 "비공개이지만 무료"COM/.NET 라이브러리가 좋을 것입니다.

FreeType에 대해 들어 봤습니다. 그것은 내기도에 응답합니까 아니면 더 나은 것이 있습니까?

EDIT : Nico Schertler가 주석을 달았을 때 DirectX -libs에 Mesh.TextFromFont -functions가있는 것으로 보입니다. 고마워 니코! 이 문제를 실제로 테스트 할 시간이되면 업데이트하겠습니다.

+1

음, 대답은 불가능합니다. 적어도 구문 분석 할 수있는 텍스트 형식의 설명서를 제공해야합니다. –

+0

C++의 basetype char *에서 Java의 StringBuffer 로의 변환을 거의 할 수 있습니다. 그건 문제가 아니야. 나는 정의 된 글꼴을 사용하여 문자/문자열에서 메쉬를 만들 수있는 "mesher"가 필요합니다. 글꼴 개체 유형은 문제가되지 않지만 변환은 대개 사소합니다. –

+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의 프로젝트에 대한 변경 사항은 매우 미비한 점을 기억합니다. –