|
■No67842 (Jitta さん) に返信 > ■No67790 (くま さん) に返信 >>VS2010 VB.Netです。 >> >>VB.netでWindows Formを使用しています。 >> >>例えば、文字列をテキストボックスに入力して >>その文字列にアーチに変形してピクチャーボックスに表示したいです。 >> >>※アーチは、円の上半分のような丸く文字がなっているやつです。 >> >>どうすれば実現できるでしょうか。 >>言葉足らずだと思いますが、よろしくお願いします。 > > 座標変換します。 > 半径rの円の外周に沿うように変形させるとすると、 > 中心角は円の外周の長さと文字列を囲む四角形の底辺の長さの比で求まります。 > 中心角が求まれば、描画を開始する角度は(180−中心角)/2…角Aとなります。 > 角度がAからA+中心角、距離がrからr+四角形の高さの範囲に該当する元の四角形の位置を求め、その色を取ってきます。
string myString = "abc"; int count = 0; for (int i = 0; i <= 90; i += 10) { Matrix matrix = new Matrix();
matrix.Rotate(i);
Graphics g = this.CreateGraphics();
g.Transform = matrix;
g.DrawLine(Pens.Blue, 0, 0, 250, 0);
if (count != (myString.Length - 1)) { g.DrawString(
myString[count].ToString(), this.Font, Brushes.Blue,
new RectangleF(250, 0, 100, 100)); count++; } }
こんな感じでしょうか。これだと下半分にアーチされます。 C#になってます。 どう修正したらいいですか?
|