首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 任意角度旋轉圖片:RotateTransform 實戰

     編輯:關於C語言

利用 `Graphics.RotateTransform` 配合 `TextureBrush` 實現圖片連續旋轉動畫。

核心代碼

private void btnRotate_Click(object sender, EventArgs e) {
    Graphics g = panel1.CreateGraphics();
    float angle = 0f;

    while (angle < 360f) {
        using (TextureBrush brush = new TextureBrush(MyBitmap)) {
            panel1.Refresh();
            brush.RotateTransform(angle);
            g.FillRectangle(brush, 0, 0, ClientRectangle.Width, ClientRectangle.Height);
        }
        angle += 0.5f;
        Thread.Sleep(50);
    }
}

注意事項

  • 記憶體壓力大:循環中頻繁創建 `TextureBrush`,建議複用或改用 `DrawImage` + `TranslateTransform`/`RotateTransform` 組合
  • 旋轉中心預設為原點 (0,0),需配合 `TranslateTransform` 移至圖片中心
  • 同樣建議用 `Timer` 或 `async` 避免阻塞 UI

改進版旋轉中心修正

g.TranslateTransform(cx, cy); // 移至中心
g.RotateTransform(angle);
g.TranslateTransform(-cx, -cy); // 移回
g.DrawImage(img, ...);
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved