2012-04-03 8 views
1

サークルの周囲にテキストを描画する際に問題があります。C++ MFC関数を使用して円の周りにテキストを描く

は、私はその理由のために私のために働いていないVC 6.0とC#サンプルでこれを実装する必要がC#のhttp://www.codeproject.com/Articles/30090/Text-On-A-Path-in-WPF

富栄に大きなサンプルを見つけました。

おそらくこれを実装するためのいくつかの基本的なアルゴリズムがありますか?

すべての図面はCDCで作成する必要があります。

+0

あなたには効果がありません。いくつかのコードとエラーメッセージを表示できますか? – Gray

+0

「本当の質問ではない」という質問をどのように閉じていますか?定義上、問題は答えると思われる。 –

答えて

0

CDCはGDIの周りの薄いラッパーです。 GDIはあなたがしたいことを多くサポートしていないので、多くの作業が必要になります。ここでのアプローチのカップルです:

  1. はオフスクリーンDIBセクションに、通常(直線で)テキストを描画し、その後にテキストを持つ別のオフスクリーンDIBセクションを作るためにピクセル毎の変換を行います円。次に、変換されたDIBセクションを出力デバイスにblitできます。

  2. 各文字について、エスケープメントと向きを現在の位置に適切な角度に設定して論理フォントを作成し、そのフォントで文字を描画します。各文字について繰り返します。ここで問題となるのは、TrueTypeフォントやOpenTypeフォントでも、フォント、ヒントなどの品質に応じて回転が常に良いとは限りません。

  3. TrueTypeまたはOpenTypeフォントを使用してGDIを取得する実際の文字の形を定義するベクトル(線分とベジェ曲線)これらをまっすぐな行に組み立て、デカルト座標を極座標変換に適用します。いずれかのパス関数を使用して結果を描画します。

+0

はい、あなたは正しいです。私はアプローチ番号2を試して、ローテーション後のテキストは "奇妙な"ものでした。いくつかの手紙は小さく、いくつかは奇妙な形をしていました。 – DjPasco

関連する問題