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

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

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

Re[4]: RotateTransform クラス(画像の回転)


(過去ログ 85 を表示中)

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

■50235 / inTopicNo.1)  RotateTransform クラス(画像の回転)
  
□投稿者/ たぐぅ* (1回)-(2010/05/31(Mon) 18:05:10)

分類:[.NET 全般] 

初めまして。よろしくお願いします。
開発言語はC#です。

画像を回転させる(5℃ずつぐらい傾けていき、ずっとぐるぐる回っているようにみせる)プログラムを考えているのですが、RotateTransform クラスで実現できることがわかりました。

いざ、実装してみると回転は確かにするのですが回転する基準点がデフォルトでpictureBoxの左上のようです。
msdnによると「オブジェクトをその場で回転させるには、RotateTransform の CenterX と CenterY を、回転させるオブジェクトの中心に設定します。」
と書いてあったのですが、どこをどう変更すればよいのかわかりません。

よろしくお願いいたします。

引用返信 編集キー/
■50236 / inTopicNo.2)  Re[1]: RotateTransform クラス(画像の回転)
□投稿者/ おのでら (11回)-(2010/05/31(Mon) 18:08:21)
おのでら さんの Web サイト
2010/05/31(Mon) 18:16:21 編集(投稿者)

画像の中心を回転軸にするとしたらこんなイメージでしょうか。

RotateTransform.CenterX = 画像の横幅 / 2;
RotateTransform.CenterY = 画像の縦幅 / 2;

注:RotateTransform は変数

※追記

Graphics.RotateTransform の話だとすると

halfWidth : 画像の幅 / 2
halfHeight : 画像の高さ / 2

として、

1.Graphics.TranslateTransform(-halfWidth, -halfHeight );

2.Graphics.RotateTransform(角度);

3.Graphics.TranslateTransform(halfWidth, halfHeight );

でしょうか。試していないですが(^^;)
引用返信 編集キー/
■50597 / inTopicNo.3)  Re[2]: RotateTransform クラス(画像の回転)
□投稿者/ たぐぅ* (2回)-(2010/06/12(Sat) 01:09:34)
>■No50236 (おのでら さん) に返信
> 2010/05/31(Mon) 18:16:21 編集(投稿者)

返信、ありがとうございました!!
まさに、Graphics.RotateTransform の話です!
言葉足らずですみませんでした。


意図した動作は実力不足で不可能でしたが、おのでらさんの返信から代替案を見つけることができました。
ありがとうございました!!^^

引用返信 編集キー/
■50599 / inTopicNo.4)  Re[1]: RotateTransform クラス(画像の回転)
□投稿者/ kky (2回)-(2010/06/12(Sat) 01:33:54)
No50235 (たぐぅ* さん) に返信
> 初めまして。よろしくお願いします。
> 開発言語はC#です。
>
> 画像を回転させる(5℃ずつぐらい傾けていき、ずっとぐるぐる回っているようにみせる)プログラムを考えているのですが、RotateTransform クラスで実現できることがわかりました。
>
> いざ、実装してみると回転は確かにするのですが回転する基準点がデフォルトでpictureBoxの左上のようです。
> msdnによると「オブジェクトをその場で回転させるには、RotateTransform の CenterX と CenterY を、回転させるオブジェクトの中心に設定します。」
> と書いてあったのですが、どこをどう変更すればよいのかわかりません。
>
> よろしくお願いいたします。
>

もう解決してしまったかも知れませんが「RenderTransformOrigin」というプロパティがあります。
RenderTransformOriginにはオブジェクトの座標原点を指定します。
上記の例でいくとこのプロパティに「0.5, 0.5」と設定することでオブジェクトの中心が回転軸になります。
詳しくはこちら
http://msdn.microsoft.com/ja-jp/library/bb980041(v=VS.95).aspx
引用返信 編集キー/
■50603 / inTopicNo.5)  Re[2]: RotateTransform クラス(画像の回転)
□投稿者/ よねKEN (524回)-(2010/06/12(Sat) 02:02:12)
2010/06/12(Sat) 12:21:37 編集(投稿者)

No50599 (kky さん) に返信
> もう解決してしまったかも知れませんが「RenderTransformOrigin」というプロパティがあります。


最初の質問文に「RotateTransform クラス」とあったので私もWPFかSilverlightかなと思ったのですが、
No50597 のコメントからGraphicsクラスのRotateTransform メソッドのようなので該当しなさそうですね。

<修正>
私の指摘内容に一部間違いがあったので修正しました
</修正>
引用返信 編集キー/
■50646 / inTopicNo.6)  Re[3]: RotateTransform クラス(画像の回転)
□投稿者/ kky (3回)-(2010/06/14(Mon) 11:13:32)
No50603 (よねKEN さん) に返信
> 2010/06/12(Sat) 12:21:37 編集(投稿者)
>
> ■No50599 (kky さん) に返信
>>もう解決してしまったかも知れませんが「RenderTransformOrigin」というプロパティがあります。
>
>
> 最初の質問文に「RotateTransform クラス」とあったので私もWPFかSilverlightかなと思ったのですが、
> No50597 のコメントからGraphicsクラスのRotateTransform メソッドのようなので該当しなさそうですね。
>
> <修正>
> 私の指摘内容に一部間違いがあったので修正しました
> </修正>

本当ですね。WPFのことだと思ってしまってました。
文章をよく読むようにします・・・
引用返信 編集キー/
■50851 / inTopicNo.7)  Re[4]: RotateTransform クラス(画像の回転)
□投稿者/ たぐぅ* (5回)-(2010/06/20(Sun) 12:59:14)
No50646 (kky さん) に返信
No50603 (よねKEN さん) に返信

ご回答ありがとうございました!
質問内容が曖昧で、すみませんでした。

まだまだ勉強が足りないので、これから頑張ります!

解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -