private?void?RotateTransform_Click(object?sender,?System.EventArgs?e)
????????{
????????????Graphics?graphics=this.CreateGraphics();
????????????graphics.Clear(Color.White);
????????????//裝入圖片
????????????Bitmap?image=new?Bitmap("nemo.bmp");
????????????//獲取當前窗口的中心點
????????????Rectangle?rect=new?Rectangle(0,0,this.ClientSize.Width,this.ClientSize.Height);
????????????PointF?center=new?PointF(rect.Width/2,rect.Height/2);
????????????float?offsetX=0;
????????????float?offsetY=0;
????????????offsetX=center.X-image.Width/2;
????????????offsetY=center.Y-image.Height/2;
????????????//構(gòu)造圖片顯示區(qū)域:讓圖片的中心點與窗口的中心點一致
????????????RectangleF?picRect=new?RectangleF(offsetX,offsetY,image.Width,image.Height);
????????????PointF?Pcenter=new?PointF(picRect.X+picRect.Width/2,
????????????????picRect.Y+picRect.Height/2);
????
????????????//讓圖片繞中心旋轉(zhuǎn)一周
????????????for(int?i=0;i<361;i+=10)
????????????{
????????????????//?繪圖平面以圖片的中心點旋轉(zhuǎn)
????????????????graphics.TranslateTransform(Pcenter.X,?Pcenter.Y);
????????????????graphics.RotateTransform(i);
????????????????//恢復(fù)繪圖平面在水平和垂直方向的平移
????????????????graphics.TranslateTransform(-Pcenter.X,?-Pcenter.Y);
????????????????//繪制圖片并延時
????????????????graphics.DrawImage(image,picRect);????
????????????????Thread.Sleep(100);
????????????????//重置繪圖平面的所有變換
????????????????graphics.ResetTransform();
????????????}
???????}?
????????{
????????????Graphics?graphics=this.CreateGraphics();
????????????graphics.Clear(Color.White);
????????????//裝入圖片
????????????Bitmap?image=new?Bitmap("nemo.bmp");
????????????//獲取當前窗口的中心點
????????????Rectangle?rect=new?Rectangle(0,0,this.ClientSize.Width,this.ClientSize.Height);
????????????PointF?center=new?PointF(rect.Width/2,rect.Height/2);
????????????float?offsetX=0;
????????????float?offsetY=0;
????????????offsetX=center.X-image.Width/2;
????????????offsetY=center.Y-image.Height/2;
????????????//構(gòu)造圖片顯示區(qū)域:讓圖片的中心點與窗口的中心點一致
????????????RectangleF?picRect=new?RectangleF(offsetX,offsetY,image.Width,image.Height);
????????????PointF?Pcenter=new?PointF(picRect.X+picRect.Width/2,
????????????????picRect.Y+picRect.Height/2);
????
????????????//讓圖片繞中心旋轉(zhuǎn)一周
????????????for(int?i=0;i<361;i+=10)
????????????{
????????????????//?繪圖平面以圖片的中心點旋轉(zhuǎn)
????????????????graphics.TranslateTransform(Pcenter.X,?Pcenter.Y);
????????????????graphics.RotateTransform(i);
????????????????//恢復(fù)繪圖平面在水平和垂直方向的平移
????????????????graphics.TranslateTransform(-Pcenter.X,?-Pcenter.Y);
????????????????//繪制圖片并延時
????????????????graphics.DrawImage(image,picRect);????
????????????????Thread.Sleep(100);
????????????????//重置繪圖平面的所有變換
????????????????graphics.ResetTransform();
????????????}
???????}?
本文摘自 :https://blog.51cto.com/u