Graphics g(hDC/*どこかからやってきた DC*/); Matrix mx; mx.RotateAt(45, center_point); g.SetTransform(&mx); HDC hDC = g.GetHDC();
- Rectangle(hDC, rect);
世の中そんなに甘くないようで、上記のようなコードを書いても回転した矩形は描画されません。これを回転させるには SetWorldTransform API を使用するか、自前で座標変換を行って Polyline 関数を使うよりありません (多分)。
しかしもう sin だの cos だの使うのは面倒くさいので (嫌な思い出があるらしい)、そのくらいはやってもらおうということで以下。
g.GetTransform(&mx); HDC hDC = g.GetHDC(); Point p = {...} mx.TransformPoints(p, 5);[]
- Polyline(hDC, p, 5);
ユーティリティとしてもそれなりに使えそうな感じ。