C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[8]: 文字列の回転配置


(過去ログ 103 を表示中)

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■61449 / inTopicNo.1)  文字列の回転配置
  
□投稿者/ さくら (1回)-(2011/08/13(Sat) 17:05:33)

分類:[ASP.NET (C#)] 

はじめましてC#初心者ですが1週間検討してもわからないのでお力をお貸し下さい。
宜しくお願いします。

ASP.NET(C#)にてイメージ画像を生成する際の質問です。

正円の円周に沿って文字列を均等な角度で回転描画する方法は理解していますが、
長辺A、短辺Bの楕円の円周に沿って文字列を描画するにはどのようにしたら良いのでしょうか?
できればサンプルコードを記載して頂ければ幸いです。
その際、長辺Aと短辺Bの比率でScaleTransformを使用すると文字の形が崩れるのであくまで
文字の形を崩さずに描画する方法を宜しくお願いします。

引用返信 編集キー/
■61450 / inTopicNo.2)  Re[1]: 文字列の回転配置
□投稿者/ ハナハナ (1回)-(2011/08/13(Sat) 17:22:39)
No61449 (さくら さん) に返信
> 正円の円周に沿って文字列を均等な角度で回転描画する方法は理解していますが、
> 長辺A、短辺Bの楕円の円周に沿って文字列を描画するにはどのようにしたら良いのでしょうか?

文字列のイメージをあらかじめ作成し、その文字列イメージを傾けて楕円の描かれているイメージに描画する方法はどうでしょうか?
作成した文字列を傾ける方法は以下のサイトが参考になります。

http://dobon.net/vb/dotnet/graphics/skewing.html

あとは文字列イメージの描画座標ですが、描画したい楕円の円周の座標が分かれば、楕円の長径と短径より、傾ける角度が分かりますが、
数学は得意ですか?
(文字列イメージは楕円の接線に平行ということですよね?)
引用返信 編集キー/
■61451 / inTopicNo.3)  Re[2]: 文字列の回転配置
□投稿者/ さくら (3回)-(2011/08/13(Sat) 18:02:10)
No61450 (ハナハナ さん) に返信
> 文字列のイメージをあらかじめ作成し、その文字列イメージを傾けて楕円の描かれているイメージに描画する方法はどうでしょうか?

> 作成した文字列を傾ける方法は以下のサイトが参考になります。
>
> http://dobon.net/vb/dotnet/graphics/skewing.html
>
文字列の値や文字数が固定でないためあらかじめイメージを作成するしておくことは難しいです。

> あとは文字列イメージの描画座標ですが、描画したい楕円の円周の座標が分かれば、楕円の長径と短径より、傾ける角度が分かりますが、
> 数学は得意ですか?
Math.CosとMath.Sinにて座標の抽出は行えますがDrawStringで描画しようとすると角度がうまく指定
できません。

> (文字列イメージは楕円の接線に平行ということですよね?)
その通りです。

引用返信 編集キー/
■61457 / inTopicNo.4)  Re[3]: 文字列の回転配置
□投稿者/ ハナハナ (2回)-(2011/08/13(Sat) 19:29:47)
No61451 (さくら さん) に返信
> 文字列の値や文字数が固定でないためあらかじめイメージを作成するしておくことは難しいです。

GraphicsクラスにはMeasureStringというメソッドがあり、文字列やフォントを指定するとその文字列のサイズを返しますので、
これを使うと文字列イメージのサイズを計算でき、このサイズのイメージを作成することができます。

>
>>あとは文字列イメージの描画座標ですが、描画したい楕円の円周の座標が分かれば、楕円の長径と短径より、傾ける角度が分かりますが、
>>数学は得意ですか?
> Math.CosとMath.Sinにて座標の抽出は行えますがDrawStringで描画しようとすると角度がうまく指定
> できません。

DrawStringではなく、先ほどの方法で文字列イメージを作成し、DrawImageを使い、こちらが提示したサイトの方法で角度付けを行います。
文字列イメージのサイズは分かりますので、文字列イメージの中央が円周上の点に一致するように、角度を考慮して座標決めすればいいのではないでしょうか。
引用返信 編集キー/
■61461 / inTopicNo.5)  Re[4]: 文字列の回転配置
□投稿者/ さくら (4回)-(2011/08/13(Sat) 20:21:53)
No61457 (ハナハナ さん) に返信
> DrawStringではなく、先ほどの方法で文字列イメージを作成し、DrawImageを使い、こちらが提示したサイトの方法で角度付けを行います。
> 文字列イメージのサイズは分かりますので、文字列イメージの中央が円周上の点に一致するように、角度を考慮して座標決めすればいいのではないでしょうか。

返信ありがとうございます。

計算した座標に角度を付けた画像を1つずつ貼り付けるようなイメージでしょうか。

RotateTransform ScaleTransform TranslateTransformを利用してDrawStringで実現できないものかと検討しましたが
難しいようですね。

ハナハナさんのおっしゃる方法は理解できますので検討してみます。

ありがとうございました。

他の方法があれば参考にしたいため引き続き解決済みにはせず回答を募集致します。
引用返信 編集キー/
■61462 / inTopicNo.6)  Re[5]: 文字列の回転配置
□投稿者/ ハナハナ (3回)-(2011/08/13(Sat) 20:50:33)
No61461 (さくら さん) に返信
> 計算した座標に角度を付けた画像を1つずつ貼り付けるようなイメージでしょうか。

はい、その通りです。
他の方法については、残念ながら思いつきません。ゴメンナサイ。
いい方法を見つけたら、また投稿します。
引用返信 編集キー/
■61467 / inTopicNo.7)  Re[6]: 文字列の回転配置
□投稿者/ れお (6回)-(2011/08/14(Sun) 17:19:14)
計算した?>>おいおい、計算式をかいてみな。

三角関数とかわかるの?

どうもアレな気がする。
10年初心者君だろ?

あはは。じゃあ〜な。

解決済み
引用返信 編集キー/
■61468 / inTopicNo.8)  Re[7]: 文字列の回転配置
□投稿者/ ハナハナ (4回)-(2011/08/14(Sun) 19:33:21)
No61467 (れお さん) に返信
> 計算した?>>おいおい、計算式をかいてみな。

勝手に解決済みにするな厨房。
あちこちでゴミのような書き込みばかりしやがって。
引用返信 編集キー/
■61474 / inTopicNo.9)  Re[8]: 文字列の回転配置
□投稿者/ れお (7回)-(2011/08/15(Mon) 16:57:21)
だってさぁ、できないんだろ?10年もな。

演習(円周)の座標も打線(出せん)のだからして。

三角関数は、中2の教科書あたりを読む。

1に読む。2に読む。3,4も読む。5も読む。

まぁ、プログラム以前の問題ですね。算数を勉強ちまちょ〜うね。


オレのコードをイロイロ研究してるくせに、まぁアレだ。かっこ悪いぞキミわ。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -