2016-12-24 15 views
0

文字列を特定の点(X、Y)と回転角度に描画する方法を見つけようとしています。これはシンプルに聞こえるが、私は本当に頭がおかしい。プログラムで回転を使用してフォームをポイントするテキストを追加する

私はドローストリングを使用してこれを行う方法を理解しようとしていましたが、テキストを表示することができましたが、回転角度を変更すると、同じままにすることを引き出す。

私はしばらくそれを使いこなしていたので、誰かがドローストリングの仕組みを説明できるかどうか疑問に思っていましたか?ちょうど私にコードの塊を与えないでください、私は実際に何が起こっているのか理解したいと思います。

答えて

1

あなたはすでに私はあなたがのOnPaintハンドラであることを行うことを前提としたテキスト描画することができたよう:だから

:このBewahre

// Copy Graphics object from EventArgs 
Graphics g = e.Graphics; 
// Save the current Matrix of the Graphics object 
var currentMatrix = g.Save(); 
// Reset the Matrix to Identity matrix 
g.Reset(); 
// Move the text Position to 0/0 
g.TranslateTransform(-textPosition.X, -textPosition.Y); 
// Torsten in origin 
g.RotateTransform(angle); 
// Move Back the drawing point 
g.TranslateTransform(textPosition.X, textPosition.Y); 
// Draw text 
g.DrawString(..); 
// restore saved Matrix. 
G.Restore(currentMatrix); 

自分で改善しなければならない擬似コード、ですが。 (私は現在私の携帯電話に乗っています)。 私は願っています。一連の指示に間違いがないこと。

メリーX-Mas

+0

お返事ありがとうございます。私はあなたの疑似コードを使って動作させました。私は2つの行を交換しなければなりません "g.TranslateTransform(-textPosition.X、-textPosition.Y);" "g.TranslateTransform(textPosition.X、textPosition.Y);"これは将来読んだ人のためのものです。テキストをフォーム上にレンダリングします。これは、テキストではなく、回転しているものです。これは正しいですか? – Dan

関連する問題