ページ 11

図形の回転について

Posted: 2012年3月11日(日) 17:05
by たけし
言語:C++
開発環境:Visual Studio2008
OS:Windows7

画像は使用しません。
Rectangle関数やEllipse関数などで描画した図形の中心を軸に、360度の回転運動(風車的な)をさせたいのですが・・・
PlgBltという関数を使ってみたのですが90度ずつの回転しか出来ない様ですし、
sin関数やcos関数を使っても円運動しか出来ません。

どうすれば出来るのでしょうか?
ご回答よろしくお願いします。

Re: 図形の回転について

Posted: 2012年3月11日(日) 17:31
by softya(ソフト屋)
GDI+による描画という事でよろしいでしょうか?
それならSetTransformを使われると良いと思います。

「Graphics.SetTransform method (Windows)」
http://msdn.microsoft.com/en-us/library ... s.85).aspx

「VC++でGDI+ そにょ6 ~画像の描画2:中心回転~ - yuyarinの日記」
http://d.hatena.ne.jp/yuyarin/20071108/1194458341

Re: 図形の回転について

Posted: 2012年3月11日(日) 17:46
by たけし
すいません、説明不足でした。

Windows APIの関数でお願いします。

Re: 図形の回転について

Posted: 2012年3月11日(日) 17:49
by softya(ソフト屋)
GDI+もWindowsAPIですよ。
GDI+ではなくGDIやるとすると自前でピクセルを回転させるしか無いと思います。

[追記]
分かりやすいかどうかは別にして、猫Winのリンクを張っておきます。
「第335章 GDI+の基礎 その1 」
http://www.kumei.ne.jp/c_lang/sdk4/sdk_335.htm
「第336章 GDI+の基礎 その2 」
http://www.kumei.ne.jp/c_lang/sdk4/sdk_336.htm

Re: 図形の回転について

Posted: 2012年3月12日(月) 00:47
by YuO
私は使ったことがないですが,GDIにもSetWorldTransformという変換行列をDCに指定するAPIがあったりします。