使用值旋转PictureBox中的图像

本文关键字:图像 PictureBox 旋转 | 更新日期: 2023-09-27 18:28:54

我正试图编写一个程序,用PictureBox显示Wii Remote的旋转。当Wii Remote在X轴上旋转时,Wii Remote的图片也会旋转。旋转的值已经显示在一个文本框中,看起来像这样:0.109243284720305-0.132414335

如何使用这些值来旋转显示的图像?

使用值旋转PictureBox中的图像

创建从PictureBox继承的自定义控件,并覆盖OnPaint虚拟方法,根据需要绘制wiimote位图:

 public partial class WiiMoteControl: PictureBox {
    public Bitmap wiimote;
    private float _angle;
    public float Angle { 
         get { return _angle; } 
         set { _angle = value; Invalidate( ); } 
    }
    protected override void OnPaint( PaintEventArgs pe ) {
        base.OnPaint( pe );
        pe.Graphics.ResetTransform( );
        pe.Graphics.TranslateTransform( Size.Width / 2, Size.Height / 2 );
        pe.Graphics.RotateTransform( Angle );
        pe.Graphics.TranslateTransform( -Size.Width / 2, -Size.Height / 2 );
        if (wiimote != null) {
            pe.Graphics.DrawImage( wiimote, 0, 0, Size.Width, Size.Height );
        }
    }
}