tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^7: DrawStringについて
投稿日: 2007/07/24(Tue) 22:49
投稿者よねKEN
> > > どうすれば左下を基点にした斜体に出来るか悩んでおります
> >
> > ということの意味は、
> >
> > >myTransform.Shear(nudSkew.Value, 0)
> > myTransform.Shear(-nudSkew.Value, 0)
> >
> > こういうことであってますか?
>
> 御指摘の所だと傾きの向きが逆になるだけですね。

「左下を基点にした斜体」という説明の意味がよくわからなかったので、
斜体の傾きが普通の斜体字のイメージと違って、逆向きなのが問題なのですか?
という意味で、私なりの解釈した案を書いてみました。

違うのであれば、具体例を挙げて説明して欲しいところです。
#正直、「傾斜の基点が左上になります、普通は左下ですよね」の意味がわかっていません。

>  このサンプル、PictureBoxの真中に一つだけ斜体の文字列を出す
> ならば良いのですが。汎用性を持たせようとすると(複数個の文字列を
> それぞれ任意の場所に描画する)。
> どうしていいのか判りません。

斜体の表示する座標を制御したい?という意味だったのでしょうか?

TranslateTransformメソッドは座標空間を平行移動していますが、
これはこのサンプルでpicDemoAreaの中心位置にテキストを表示するために
行っているものです。
特に必要なければ、
> xLocation = (picDemoArea.Width - textSize.Width) / 2
> yLocation = (picDemoArea.Height - textSize.Height) / 2
>
> g.TranslateTransform(xLocation, yLocation)
は丸ごと削っても差し支えありません。
その代わりに、
>g.DrawString(txtShortText.Text, myFont, myForeBrush, 0, 0)
の最後の2つの引数に座標を指定します。

g.DrawString(txtShortText.Text, myFont, myForeBrush, 5, 5)
なら、座標(5, 5)に表示するという具合ですね。(原点(0,0)は左上です)

ちょっと調べてみただけですが、以下のサイトがEdwardさんの知りたいことの
説明になっていそうな気がします。
http://www.nextftp.com/swlabo/m1_vbnet/tips2005/2_graphics/g0307.htm

Matrixクラスに関連する情報は「アフィン変換」で検索すると
原理的な話が調べられると思います。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。