1

truetype ファイルからグリフをダンプしたので、それらで遊ぶことができます。それらは、二次ベジエ曲線と線から構成される形状の輪郭を持っています。このような形状の三角形を出力して、ユーザーのために視覚化できるようにしたいと考えています。

伝統的に、libfreetype を使用するか、この種の輪郭をスキャン ラスタライズします。しかし、フォントから押し出された 3D メッシュを生成し、それらを使って他の歪みを作りたいと思っています。

では、二次ベジエ曲線と直線からなる形状を多角形化するにはどうすればよいでしょうか? 一緒に形を形成する多くの輪郭があります。一部の等高線は加算的であり、その他は減算的です。輪郭が開くことはありません。それらはループを形成します。

(実際には、ttf グリフから輪郭の頂点のみを取得します。これらの頂点は、それらが曲線の一部であるかどうかを定義します。これらをベジエ曲線と線に分解するのは簡単ですが、データがこのように表現されていることを知っていると、輪郭を三角形にポリゴン化する)

4

1 に答える 1

0

これは簡単です。曲線にブール演算を実装する必要があります。次に、単一の曲線が残るまで、曲線のペアを結合して続行します。

まず、曲線を評価してポリラインに変換する必要があります。

次に、2 つの等高線が交差するすべての場所に頂点があることを確認する必要があります (この部分は、数値エラーのために実際に試行することができます。Bentley-Ottmann アルゴリズムを使用できます)。

最後に、カーブをトラバースし、正しい順序で接続してブール演算を実行し、弱い単純なポリゴンを生成するだけです。

このようなポリゴンは、たとえば耳のクリッピング アルゴリズムを使用して三角測量を行うことができます(これは遅いですが、実装はかなり簡単です)。

お役に立てれば ...

于 2012-02-13T11:06:01.527 に答える