private void btnRotate_Click(object sender, EventArgs e)
{
Graphics g = panel1.CreateGraphics();
float angle = 0;
while (angle < 360)
{
using (var 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 將圖片作為紋理填充,配合 RotateTransform 旋轉紋理座標系,產生平滑旋轉動畫。
private void btnEllipse_Click(object sender, EventArgs e)
{
panel1.Refresh();
Graphics g = panel1.CreateGraphics();
using (var brush = new TextureBrush(MyBitmap))
{
g.FillEllipse(brush, panel1.ClientRectangle);
}
}
FillEllipse 在矩形區域內繪製內切橢圓,搭配 TextureBrush 達成橢圓裁切效果。
| 類別 | 用途 |
|---|---|
| Graphics | 繪圖介面,提供 RotateTransform、FillEllipse、DrawImage 等 |
| TextureBrush | 以圖片為紋理的筆刷,支援旋轉、縮放、平移變換 |
| Bitmap | 像素資料容器,提供 Clone、RotateFlip、GetPixel 等 |